对方定义的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方式发送数据是一种常见的网络请求处理方式。然而,在实际操作过程中,可能会遇到数据传输大小受限的问题,尤其是在向云服务器发送大型文件时更为...
本篇文章将深入探讨如何在C#中通过POST方式提交Form表单,包括其原理、步骤和实际代码示例。 一、POST提交表单的基本原理 POST是HTTP协议中的一个方法,用于向服务器发送数据,特别是当数据量较大或者包含敏感信息...
这段代码首先定义了目标URL和要POST的数据(这里以JSON格式为例)。然后,创建一个`HttpWebRequest`对象,并设置方法为POST,内容类型为JSON,以及POST数据的长度。接着,写入POST数据到请求流中。最后,获取并处理...
### C#以POST方式模拟提交表单 - 关键知识点解析 #### 一、知识点概览 本文档将基于“c#以POST方式模拟提交表单”这一主题进行深入解析,主要内容涉及C#语言如何实现HTTP POST请求来模拟提交表单数据,并通过具体的...
C#实现Http post方式 服务端+客户端源码,修改成你的ip端口,直接运行可用 【核心代码】 //提供一个简单的、可通过编程方式控制的 HTTP 协议侦听器。此类不能被继承。 httpobj = new HttpListener(); //定义url及...
结合压缩包中的示例,你将能够学习到如何在C#中构建POST请求以调用一个WebService接口,同时传递参数并处理响应。理解这些概念对于任何希望使用C#进行Web通信的开发者来说都是至关重要的。通过实践这些代码,你不仅...
本文将深入探讨如何使用C#进行HTTP POST方式的文件上传,并关注一些关键点,如文件大小不受限制、上传进度显示以及确保文件的稳定传输。 首先,我们要理解HTTP POST请求的工作原理。POST请求是HTTP协议中的一个方法...
本实例将详细讲解如何在C#环境中实现HTTP POST请求,以实现数据的发送和接收。 HTTP POST方法是HTTP协议中的一个请求类型,它允许客户端向服务器发送数据,常用于提交表单或上传文件。在C#中,我们可以使用多种方式...
C#中通过直接添加引用的方来调用Web Service的方式不够灵活,故采取手动发送Http请求的方式来调用Web Service。最后选择使用Post方式来调用Web Service
本篇将深入探讨如何使用C#进行POST请求操作来调用WCF服务,并处理带有输入参数和返回值的JSON字符串。 首先,理解WCF服务的基础知识至关重要。WCF服务是一种能够跨越多个应用程序和网络边界通信的服务。它支持多种...
在.NET开发环境中,C#是一种常用的编程...总之,C#结合Newtonsoft.Json库提供了一种强大的方式来处理HTTP POST JSON请求,这在与Web API交互时非常有用。通过理解和实践这些概念,开发者可以更高效地构建网络通信功能。
本文将详细介绍如何使用C#语言通过POST方式提交JSON字符串,并提供一个完整的示例代码。 #### 二、知识点详细解析 ##### 2.1 HTTP POST请求简介 POST请求是一种客户端向服务器发送数据的方式,通常用于创建资源...
在C#编程中,模拟POST提交通常用于模拟用户在网页上的表单提交行为,例如上传文件,特别是图片。这个过程涉及到HTTP协议的理解、文件流处理以及服务器端的存储逻辑。以下将详细介绍如何实现这个功能。 首先,理解...
根据给定的文件信息,我们可以总结出以下关于C#后台请求接口的方法(GET, POST)的知识点: ...以上就是关于C#后台请求接口的方法(GET, POST)的知识点总结,希望能对理解和使用这两种请求方式有所帮助。
/// /// Post方式提交数据,返回网页的源代码 /// /// 发送请求的 URL /// 请求的参数集合 /// 远程资源的响应结果</returns>
综上所述,C#通过`HttpClient`类提供的方法可以方便地执行GET和POST请求,获取Web服务的数据。而处理返回的JSON数据,我们可以利用`System.Text.Json`库进行序列化和反序列化操作,使得数据处理更加便捷高效。这些...
今天有空,写了基于C#使用Spring.Net的演示实例,希望能给有需要的人带来帮助,其中演示了配置下的IOC、AOP、属性注入、构造函数注入、通知过滤器、以及不使用配置直接代码硬编的AOP动态代码过程,另外还增加了...
本篇将详细阐述C# WebService客户端和服务器如何利用GET和POST方法进行数据传输。 首先,我们要了解什么是Web Service。Web Service是一种基于互联网的标准协议,它允许不同系统之间的应用程序通过网络共享数据和...
在C#编程中,POST提交数据是常见的网络通信方式,特别是在Web应用开发中,比如向服务器发送表单数据、API接口交互等。本教程将详细讲解如何在C#中实现POST请求并接收返回的数据。 首先,理解POST请求的基本概念:...