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线程类的简单实用(直接上代码 ...
随机推荐
- HDU 3966 Aragorn's Story 树链剖分+树状数组 或 树链剖分+线段树
HDU 3966 Aragorn's Story 先把树剖成链,然后用树状数组维护: 讲真,研究了好久,还是没明白 树状数组这样实现"区间更新+单点查询"的原理... 神奇... ...
- css3过渡
语法格式: transition:属性名 完成时间 速度曲线 何时开始 transition:width 2s ease-in 3s: width 2s 整个过渡效果持续的时间 ease-in 指定了 ...
- XlFileFormat Enumeration
https://msdn.microsoft.com/zh-cn/library/office/ff198017.aspx
- FPGA作为从机与STM32进行SPI协议通信---Verilog实现 [转]
一.SPI协议简要介绍 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用 ...
- Bootstrap <基础二十八>列表组
列表组.列表组件用于以列表形式呈现复杂的和自定义的内容.创建一个基本的列表组的步骤如下: 向元素 <ul> 添加 class .list-group. 向 <li> 添加 cl ...
- 同表复制修改日期的procedure
同表复制数据,让其日期增加 算出总共的天数,用group by 分类后的. space 提前求出第一块数据的总和 sum = select count(*) from tbl_event; 固定操作第 ...
- CFD计算
47 求解器为flunet5/6在设置边界条件时,specify boundary types下的types中有三项关于interior,interface,internal设置,在什么情况下设置相应 ...
- php session的操作
[设置session数据] <?php session_start(); //初始化 //session文件中可以保存 dobule,integer,bool,array,object $_SE ...
- java数据结构_附12_图、顶点和边的定义(双链存储)
图--双链式存储结构 顶点 和 边 的定义 1.Vertex.java 2.Edge.java 3.AbstractGraph.java 1. public class Vertex {private ...
- 【visio 2007操作】
1.visio改变画布大小 两种方法:1)按住ctrl,可以鼠标拉动调整背景绘图大小2)点击菜单栏“文件”-“页面尺寸”,选择“调整大小以适应绘图内容”并点击确定