近期开发 MSN账号登录获取账号信息,动态新闻等功能REST API文档,说参数传参有2种方式, 一种是Post,一种是Get
Get方式是成功的。 可是Post方式传参数时,报错。 ===========================================
官方开发的函数
/// <summary>
/// Performs a basic HTTP POST request
/// </summary>
/// <param name="url">The URL of the request.</param>
/// <param name="post">POST Data to be passed.</param>
/// <param name="refer">Referrer of the request</param>
/// <returns>HTML Content of the response.</returns>
public string HttpPost(string url, string post, string refer = "")
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.CookieContainer = cJar;
request.UserAgent = UserAgent;
request.KeepAlive = false;
request.Method = "POST";
request.Referer = refer; byte[] postBytes = Encoding.ASCII.GetBytes(post);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postBytes.Length; Stream requestStream = request.GetRequestStream();
requestStream.Write(postBytes, 0, postBytes.Length);
requestStream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//远程服务器返回错误: (401) 未经授权。 StreamReader sr = new StreamReader(response.GetResponseStream()); return sr.ReadToEnd();
}
=============================调用时
说明文档调用如下格式,Post方式
//https://apis.live.net/v5.0/me/events?access_token====我的代码
string url = "https://apis.live.net/v5.0/me/events";
string param = string.Format("access_token={0}", Request.Cookies["MeetingRooms"]["accessToken"]);
string result = HttpPost(url,param);
Get方式是成功的。 可是Post方式传参数时,报错。 ===========================================
官方开发的函数
/// <summary>
/// Performs a basic HTTP POST request
/// </summary>
/// <param name="url">The URL of the request.</param>
/// <param name="post">POST Data to be passed.</param>
/// <param name="refer">Referrer of the request</param>
/// <returns>HTML Content of the response.</returns>
public string HttpPost(string url, string post, string refer = "")
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.CookieContainer = cJar;
request.UserAgent = UserAgent;
request.KeepAlive = false;
request.Method = "POST";
request.Referer = refer; byte[] postBytes = Encoding.ASCII.GetBytes(post);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postBytes.Length; Stream requestStream = request.GetRequestStream();
requestStream.Write(postBytes, 0, postBytes.Length);
requestStream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//远程服务器返回错误: (401) 未经授权。 StreamReader sr = new StreamReader(response.GetResponseStream()); return sr.ReadToEnd();
}
=============================调用时
说明文档调用如下格式,Post方式
//https://apis.live.net/v5.0/me/events?access_token====我的代码
string url = "https://apis.live.net/v5.0/me/events";
string param = string.Format("access_token={0}", Request.Cookies["MeetingRooms"]["accessToken"]);
string result = HttpPost(url,param);
解决方案 »
- asp.net怎么取出word,txt,ppt中的文字
- visual studio 2008建新站点新建站点没有IIS选项
- web如何实现能自动调整打印位置?
- 正在学习泛型,求一个完整的定义泛型,用泛型,给值,读值的例子!
- MVC route 怎么设置可以省略{controller}/{action}
- .net中有判断变量是字符还是数字的方法吗?
- 如何获得字段的长度
- 高难度:如何实现前台字符串邦定?问题解决了再送100
- 一个很郁闷的问题,,路过的进来凑个热闹~~~~谢谢!
- 新写的一个论坛,大家来帮我测试。欢迎提出宝贵意见!
- 请教C#调用WPS打开word,excel并转成PDF文件
- 问个低级问题,如何用bool来判断下拉菜单中的哪一项被选中
request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new System.Text.ASCIIEncoding().GetBytes("username:password")));