博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
metro 微博api开发,post请求
阅读量:6982 次
发布时间:2019-06-27

本文共 2312 字,大约阅读时间需要 7 分钟。

刚接触metro不久,就接到开发微博接口的任务,搞了好久。下面分享下开发过程

注意:1、metro下没有webbrowser控件,网上很多的实现都是基于webbrowser开发的。

   2、metro有WebView控件,很多基于网页认证的接口就要用到此控件。QQ的接口是基于网页的。

先要判断网络连接,可以参考下这个Windows.Networking.Connectivity命名空间。

第一种post方法:

HttpClient client = new HttpClient();            //准备POST的数据            var postData = new List
>(); postData.Add(new KeyValuePair
("access_token", "你的access_token")); postData.Add(new KeyValuePair
("oauth_consumer_key", "你的App_Id")); postData.Add(new KeyValuePair
("openid", "你的Openid")); HttpContent httpcontent = new FormUrlEncodedContent(postData); HttpResponseMessage response = await client.PostAsync("接口地址", httpcontent); //返回的信息 string responseBody = await response.Content.ReadAsStringAsync();

 

 第二种post方法:

       HttpClient client = new HttpClient();            //准备POST的数据            MultipartFormDataContent httpcontent = new MultipartFormDataContent();            HttpContent accessContent = new StringContent(access_token);            accessContent.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/x-www-form-urlencoded");            httpcontent.Add(accessContent, "access_token");            //传输二进制图片            Stream stream = new MemoryStream(pic);            HttpContent piccontent = new StreamContent(stream);            piccontent.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("multipart/form-data");          httpcontent.Add(statusContent, "status");            //发起POST连接            HttpResponseMessage response = await client.PostAsync("接口地址", httpcontent);            //返回的信息        responseBody = await response.Content.ReadAsStringAsync();

 第三种post(比较大众的做法):

先把内容放到一个stream中

HttpContent PostContent = new StreamContent(stream);            PostContent.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("multipart/form-data; boundary=" + boundary);            HttpClient client = new HttpClient();            HttpResponseMessage response = await client.PostAsync("接口地址", PostContent);

 记得要把指针指向stream的开始,不然发过去的是stream的结尾,一片空白。

 

  

 

具体可以参考微软给的这个例子:

转载于:https://www.cnblogs.com/easyzikai/archive/2012/07/20/2601721.html

你可能感兴趣的文章
py 决策树①
查看>>
帮您找到正确的提问渠道
查看>>
JavaScript—ES6关于Promise的用法(19)
查看>>
Google发布机器学习平台Tensorflow游乐场~带你玩神经网络(转载)
查看>>
centos6.0下安装FTP客户端命令
查看>>
SAN存储方式之falconstor实施方案(2)
查看>>
Bokeh快速入门(1)
查看>>
读取本机的Java运行环境和相关配置文件的内容
查看>>
Linux系统下的RZSZ(文件传输工具)
查看>>
第5章选择结构程序设计
查看>>
linux 下网络流量监控
查看>>
[CentOS6] Page allcation failure
查看>>
MagicLinux+MySQL5+PHP5+Apache2+phpMyAdmin
查看>>
服务器RAID磁盘坏道修复实战
查看>>
SOAP
查看>>
理解Windows中的路由表和默认网关
查看>>
MalformedInputException处理
查看>>
OPENAPI的测试用例编写方法
查看>>
事件通知(Event Notification)实践
查看>>
java json和object互换
查看>>