webclient的简单实用
这是我在项目中调用别人写好的接口口是使用的
1、简单的url传参
List<ArticleModel> result = new List<ArticleModel>();
string str = string.Empty;
string url = "http://transfer.61read.com/Service/ResourceService/GetArticleResourceList/access_token/"
+ accessToken + "?";
if (resCategoryId != null)
{
url += "ResCategoryId=" + resCategoryId + "&";
}
if (pageindex != null)
{
url += "PageIndex=" + pageindex + "&";
}
if (pagesize != null)
{
url += "PageSize=" + pagesize + "&";
}
if (search != null)
{
url += "SearchTerm=" + search + "&";
}
if (isAsc != null)
{
url += "IsAsc=" + isAsc.ToString();
}
if (ResId != null)
{
url += "ResId=" + ResId + "&";
}
if (status != null)
{
url += "Status=" + status + "&";
}
url = url.TrimEnd(new char[] { '&', '?' });
Stream stream = new WebClient().OpenRead(url);
str = new StreamReader(stream).ReadToEnd();
ArticleResult resourceResult = JsonConvert.DeserializeObject<ArticleResult>(str);
List<ArticleModel> list = JsonConvert.DeserializeObject<List<ArticleModel>>
(resourceResult.GetArticleResourceListResult);
result = list.OrderBy(r => r.ResName).ToList();
return result;
还有就是规定使用特定的Method
public static void EditArticle(string accessToken, ArticleModel article, string resCateID)
{
string jsonStr = Newtonsoft.Json.JsonConvert.SerializeObject(
new
{
entityJson = Newtonsoft.Json.JsonConvert.SerializeObject(
new
{
ResId = article.ResId,
ResName = article.ResName,
Status = article.Status,
Keyword = article.Keyword,
Thumbnail = article.Thumbnail,
CreateUserId = article.CreateUserId,
SubTitle = article.SubTitle,
Author = article.Author,
Content = article.ArticleContent,
ResCategoryId = resCateID
}
)
});
WebClient client = new WebClient();
byte[] sendData = Encoding.UTF8.GetBytes(jsonStr);
client.Headers.Add("Content-Type", "application/json");
client.Headers.Add("ContentLength", sendData.Length.ToString());
byte[] recData = client.UploadData
("http://transfer.61read.com/Service/ResourceService/UpdateArticle/access_token/" + accessToken, "Put", sendData);
client.Dispose();
string result = Encoding.GetEncoding("UTF-8").GetString(recData);
这个是调用方式是Put,传过去的事一个实体,使用client.UploadData的方法是必须传递数据
我在项目开发中遇到一个坑爹的问题就是使用Delete的调用方式只需要传递url传一个Id
WebClient client = new WebClient();
client.Headers.Add("Content-Type", "application/json");
Stream stream = client.OpenWrite(string.Format
("http://transfer.61read.com/Service/ResourceService/DeleteArticle/access_token/{0}/ResId/{1}", accessToken,
resCateID), "DELETE");
stream.Close();
client.Dispose();
需要尝试client里的不同方法,由于我的粗心大意,我把Delete写成了Deleted,搞的我调试了很久,还是别人给我看出来的;
webclient的简单实用的更多相关文章
- jQuery的几种简单实用效果
许久未分享博客,或许已生疏. 闲来无事, 分享几个jQuery简单实用的效果案例 不喜勿喷... 1.页面常用的返回顶部 <!DOCTYPE html> <html lang=&qu ...
- 经验分享:10个简单实用的 jQuery 代码片段
尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...
- 简单实用的PHP防注入类实例
这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下 本文实例讲述了简单实用的PHP防注 ...
- php简单实用的操作文件工具类(创建、移动、复制、删除)
php简单实用好用的文件及文件夹复制函数和工具类(创建.移动.复制.删除) function recurse_copy($src,$dst) { // 原目录,复制到的目录 $dir = opend ...
- 基于Bootstrap简单实用的tags标签插件
http://www.htmleaf.com/jQuery/ jQuery之家 自由分享jQuery.html5和css3的插件库 基于Bootstrap简单实用的tags标签插件
- C#_简单实用的翻页
简单实用的生成翻页HTML辅助类 C# using System.Text; namespace ClassLibrary { /// <summary> /// /// </sum ...
- 简单实用的Windows命令(一)
前几天新买了一台笔记本电脑,使用了一下几个简单的查看电脑配置的命令,觉得非常的不错,在此记录一下 一:运行命令的方式有两种 1:使用快捷键WIN+R,然后在弹出的“运行”对话框中输入对应的命令 2:在 ...
- 简单实用的Windows命令(二)
昨天简单的记录了几个非常简单实用的Windows命令,不过我又想起来还有两个我在实际的工作中也是经常用到的命令——PING和IPCONFIG,不过我在工作中的使用都是非常简单的,用PING命令检测对应 ...
- iOS边练边学--多线程介绍、NSThread的简单实用、线程安全以及线程之间的通信
一.iOS中的多线程 多线程的原理(之前多线程这块没好好学,之前对多线程的理解也是错误的,这里更正,好好学习这块) iOS中多线程的实现方案有以下几种 二.NSThread线程类的简单实用(直接上代码 ...
随机推荐
- git clone带用户名和密码的方式
git clone http://username:password@127.0.0.1/res/res.git
- SQL Server系列
这里整理了我学习SQL Server的全部文章,包括从基础到高级,做一个目录,方便以后查找. SQL Server数据类型 SQL Server中开发常用的数据类型 单表查询和多表查询 一个单表查询的 ...
- 网站优化之PHPCMS如何开启伪静态
做为一名网站优化方面的工作,那么选择CMS系统的时候,有良好的网站优化功能就是一个好的CMS的标准之一,而系统是否支持伪静态,则是URL优化的工作之一,而PHPCMS是一款网站优化方面做得比较成功的C ...
- iOS系统网络抓包方法
转到自己的博客收藏. 1. 网络共享 + 可视化抓包工具 基本原理 原理比较简单,ios设备通过代理方式共享连接mac电脑的无线网卡,使用抓包工具抓包,然后进行分析(我们推荐使用Wireshark,在 ...
- IOS 学习 开发 自定义 UINavigationController 导航
文件目录如下:基本导航顺序: root -> First -> Second -> Third.其中,FirstViewController作为 navigation堆栈的rootv ...
- ASP.NET中Onclick和OnserverClick事件的区别
对于服务器按钮控件(即<asp:Button>类型的按钮): 服务器响应事件:OnClick 客户端响应属性:OnClientClick 对于html按钮控件(即<input typ ...
- web开发学习之Http协议
web入门 请求: request 浏览器向服务器发信息 响应:response 服务器回复浏览器 一个请求发出,一定有且仅有一个响应 http协议:对浏览器客户端余服务器的数据传输规范 ht ...
- Tomcat配置错误导致Quartz执行两次问题
以下基于tomcat服务器 我们通常将域名映射到指定服务器的端口上,以通过域名直接访问服务,如http://www.abc.com域名已绑定到本机的80端口,项目名wechat,则直接访问http:/ ...
- java开发环境搭建
回顾环境安装的流程. 安装jdk 配置java开发环境 配置path以及classpath. 我是在http://www.oracle.com/上下载的.点击Downloads-->java f ...
- MySQL workbench 中文乱码 显示口口
Edit-->perference...-->Apperance 如下图 即可 转载自:http://blog.csdn.net/shxluwei/article/details/802 ...