对方定义的Web接口,参数是JSON,返回也是JSON
对方服务需要登录,并且对SessionID加密作为通信凭据,系统的WebClient不具备保持Session的功能,因此对WebClient做了扩展。如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Collections;
using Newtonsoft.Json.Linq;
class HttpUtil
{
private CookieAwareWebClient client;
public HttpUtil()
{
client = new CookieAwareWebClient();
}
public JObject post(string url, JObject jObj)
{
client.Headers.Add("Content-Type", "text/html");
string content = "[" + jObj.ToString() + "]";
byte[] postBytes = Encoding.UTF8.GetBytes(content);
string returnValue = "";
try
{
byte[] responseArray = client.UploadData(url, "POST", postBytes);
returnValue = Encoding.UTF8.GetString(responseArray);
}
catch (Exception ex)
{
string message = ex.Message;
}
returnValue = returnValue.Substring(1, returnValue.Length - 2);
return JObject.Parse(returnValue);
}
public void dispose()
{
client.Dispose();
}
}
class CookieAwareWebClient : WebClient
{
public CookieAwareWebClient()
: this(new CookieContainer())
{ }
public CookieAwareWebClient(CookieContainer c)
{
this.CookieContainer = c;
}
public CookieContainer CookieContainer { get; set; }
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
if (request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = this.CookieContainer;
}
return request;
}
}
C#操作JSON用到的DLL见附件。
PS:JArray是C#的JSON数组对象,调用ToString()方法时,会添加[]符号表示数组。JArray的使用和JSON类似,直接使用Parse方法即可。
PS2:貌似C#3.5自带生成JSON,不需要再使用Newtonsoft.Json了。
以上
分享到:
相关推荐
C# 以Post方式提交数据 C# 以Post方式提交数据
接口协议http访问方式post 利用C#创建post访问http接口.demo代码
C# post方式提交Form表单。 C# post方式提交Form表单,可以支持带参数传入,供大家学习参考。 C# post提交表单。
C#用POST方式发送数据到云服务器的时候,传输的文件大小会受到限制,文档给出了解决方法。亲测可行
C# 实现HTTPS协议POST数据到接口
c#以POST方式模拟提交表单 - 真功夫
c#实现的http post方法实例,测试通过。
c# Post提交图片
C#通过post提交json字符串示例
C# 利用POST传值方式一键登录126邮箱源码 仅供参考学习使用。
C# post模拟提交多个图片接收图片并存到存到服务器上。
1.(WebService带参数Post请求 )方法实现和方法调用。 2.(WebService接口)WebService应用程序的创建不在介绍,百度介绍更详细。
/// /// Post方式提交数据,返回网页的源代码 /// /// 发送请求的 URL /// 请求的参数集合 /// 远程资源的响应结果</returns>
c#post multipart/form-data和JSON数据
c#下post 发送 multipart/form-data和JSON数据
今天有空,写了基于C#使用Spring.Net的演示实例,希望能给有需要的人带来帮助,其中演示了配置下的IOC、AOP、属性注入、构造函数注入、通知过滤器、以及不使用配置直接代码硬编的AOP动态代码过程,另外还增加了...
1.稍微修改可以实现自动上传文件 2.上传文件不受大小限制 3。文件上传过程中可以显示当前上传进度,当前平均上传速度、上传文件已花费时长 上传文件大小和总的文件大小百分比 4。保证文件的稳定传输
通过C#,根据Http协议,创建GET方式的HTTP请求,创建POST方式的HTTP请求。
C#POST请求WCF服务,带输入参数和返回值,输入参数是json字符串格式。