客户端

namespace Client.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
string url = ""; // 这里我们还不知道服务器的url,因此留空 #region 构造POST请求
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Host = "localhost:14340";
string body = "client_id=123&redirect_uri="+url+"&response_type=code";
byte[] bodyBytes = Encoding.UTF8.GetBytes(body);
Stream requestStream = request.GetRequestStream();
requestStream.Write(bodyBytes,,bodyBytes.Length);
#endregion #region 发送请求并取得响应
// 必须使用HttpWebRequest.GetResponse()方法,请求才能被发送并取得响应
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
StreamReader sr = new StreamReader(response.GetResponseStream());
ViewBag.Response = sr.ReadToEnd();
#endregion return View();
}
}
}

服务器端

namespace Server.Models
{
/// <summary>
/// 对于POST请求,必须对请求体的所有参数建立一个模型类。
/// </summary>
public class RequestArgs
{
public string client_id { get; set; }
public string redirect_uri { get; set; }
public string response_type { get; set; }
}
} namespace Server.Controllers
{
public class ApiTestController : ApiController
{
public HttpResponseMessage Post(RequestArgs args)
{
string client_id = args.client_id;
string redirect_uri = args.redirect_uri;
string response_type = args.response_type;
return Request.CreateResponse(HttpStatusCode.OK, "I have received your message. Client_id = "+client_id+", RedirectUri = "+redirect_uri+"response_type = "+response_type);
}
}
}
private string HttpPost(string Url, string postDataStr)
{ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
byte[] data = Encoding.UTF8.GetBytes(postDataStr);
request.ContentLength = data.Length;
Stream myRequestStream = request.GetRequestStream();
myRequestStream.Write(data, , data.Length);
myRequestStream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close(); return retString;
} public string HttpGet(string Url, string urlParams = null)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (string.IsNullOrEmpty(urlParams) ? "" : "?") + urlParams);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8"; HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close(); return retString;
}

最新文章

  1. 《PHP字符串函数》笔记
  2. js中setTimeout()时间参数设置为0的探讨
  3. 汉诺塔(河内塔)算法 ----C语言递归实现
  4. 【android studio】android studio使用过程中,搜集的一些问题
  5. (easy)LeetCode 235.Lowest Common Ancestor of a Binary Search Tree
  6. extjs grid 分页
  7. linux挂载详解
  8. 360WIFI下使用Fiddler抓取手机APP流量
  9. nade.js(一)进程管理
  10. 对把JDK源码的一些注解,笔记
  11. eclipse安装和配置Gradle插件
  12. 我对面向对象设计的理解——Java接口和Java抽象类
  13. LinkedList源码
  14. lumen----------A facade root has not been set.
  15. 图解HTTP第四章
  16. tensorflow(3):神经网络优化(ema,regularization)
  17. Appium Studio 初体验(windows做ios自动化,录制appium脚本)
  18. spring boot 系列之六:深入理解spring boot的自动配置
  19. SVN 将主干的代码合并到分支上
  20. Java基础学习篇---------封装

热门文章

  1. 福州三中基训day2
  2. 线段树+扫描线【HDU1542】Atlantis
  3. POJ1325Machine Schedule(匈牙利算法)
  4. 24、Django实战第24天:讲师列表页
  5. centos 7 下发送邮件设置
  6. 表(Table)
  7. Visual Studio 2017 编译Clang
  8. [Contest20180325]序列
  9. 【kmp算法】poj2406 Power Strings
  10. Ionic2 常见问题及解决方案