这是我在项目中调用别人写好的接口口是使用的
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的简单实用的更多相关文章

  1. jQuery的几种简单实用效果

    许久未分享博客,或许已生疏. 闲来无事, 分享几个jQuery简单实用的效果案例 不喜勿喷... 1.页面常用的返回顶部 <!DOCTYPE html> <html lang=&qu ...

  2. 经验分享:10个简单实用的 jQuery 代码片段

    尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...

  3. 简单实用的PHP防注入类实例

    这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下   本文实例讲述了简单实用的PHP防注 ...

  4. php简单实用的操作文件工具类(创建、移动、复制、删除)

    php简单实用好用的文件及文件夹复制函数和工具类(创建.移动.复制.删除) function recurse_copy($src,$dst) {  // 原目录,复制到的目录 $dir = opend ...

  5. 基于Bootstrap简单实用的tags标签插件

    http://www.htmleaf.com/jQuery/ jQuery之家 自由分享jQuery.html5和css3的插件库 基于Bootstrap简单实用的tags标签插件

  6. C#_简单实用的翻页

    简单实用的生成翻页HTML辅助类 C# using System.Text; namespace ClassLibrary { /// <summary> /// /// </sum ...

  7. 简单实用的Windows命令(一)

    前几天新买了一台笔记本电脑,使用了一下几个简单的查看电脑配置的命令,觉得非常的不错,在此记录一下 一:运行命令的方式有两种 1:使用快捷键WIN+R,然后在弹出的“运行”对话框中输入对应的命令 2:在 ...

  8. 简单实用的Windows命令(二)

    昨天简单的记录了几个非常简单实用的Windows命令,不过我又想起来还有两个我在实际的工作中也是经常用到的命令——PING和IPCONFIG,不过我在工作中的使用都是非常简单的,用PING命令检测对应 ...

  9. iOS边练边学--多线程介绍、NSThread的简单实用、线程安全以及线程之间的通信

    一.iOS中的多线程 多线程的原理(之前多线程这块没好好学,之前对多线程的理解也是错误的,这里更正,好好学习这块) iOS中多线程的实现方案有以下几种 二.NSThread线程类的简单实用(直接上代码 ...

随机推荐

  1. delphi中线程应用之Synchronize

    当一个线程在使用时,如果这个函数使用了Synchronize修钸的话就不允许别一个线程来调用这个函数,它的目的是避免多个子线程同时访问主线程资源.示例:procedure TTaskThread.Sh ...

  2. #define DELAY_ONE_MICROSECOND (-10) 时间是负数的原因

    以下摘自DOOM的博文<内核同步对象> http://blog.csdn.net/lqk1985/article/details/2541867 “最后一个参数&timeout是一 ...

  3. Swift函数

    函数 函数 介绍 // func // 在Swift中,一个个的方法就是函数 // 1.定义函数的关键字是func // 在定义函数的时候,不管有没有参数都加括号,参数写在括号中 // 在定义函数时, ...

  4. 关于lambda表达式的一些学习——基于谓词筛选值序列

    今天看了一些关于lambda表达式的知识,然后对于Func<T,TResult>泛型委托不太熟悉,便查了查相关资料,又引出来了基于谓词筛选值序列这个对我来说的新鲜知识点,于是去查MSDN, ...

  5. Mysql数据库的一些命令_LInux

    查看当前数据库的版本,因为有些命令在不同版本中 用法有可能不一样,注意 -V 是大写字母V[root@localhost ~]# mysqladmin -Vmysqladmin  Ver 8.42 D ...

  6. 黑马程序员——C语言基础 函数

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)函数的定义 1> 任何一个C语言程序都是由一个或者多个程序段( ...

  7. C# unity3d 贪吃蛇 游戏 源码 及其感想

    这个游戏的设计过程是这样的: 1,创建

  8. No matching provisioning profile found: Your build settings specify a provis...

    解决办法: (1)右键.xcodeproj文件,显示包内容--->找到project.pbxproj文件打开--->查找“PROVISIONING_PROFILE"---> ...

  9. STM32F之IAR6.5 J-Link程序下载错误

    错误01:Keil环境下使用J-Link SW模式下载程序,而IAR6.5则出现如图1-1的错误.

  10. Visual Studio 2015 Update 1 ISO

    Visual Studio Community 2015 with UPDATE 1___________________________________________English ENU - h ...