`
独自等待戈多
  • 浏览: 36274 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

C#以Post方式访问spring的action

阅读更多

对方定义的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方式发送数据是一种常见的网络请求处理方式。然而,在实际操作过程中,可能会遇到数据传输大小受限的问题,尤其是在向云服务器发送大型文件时更为...

    C# post方式提交Form表单

    本篇文章将深入探讨如何在C#中通过POST方式提交Form表单,包括其原理、步骤和实际代码示例。 一、POST提交表单的基本原理 POST是HTTP协议中的一个方法,用于向服务器发送数据,特别是当数据量较大或者包含敏感信息...

    C# 实现HTTPS协议POST数据到接口.rar

    这段代码首先定义了目标URL和要POST的数据(这里以JSON格式为例)。然后,创建一个`HttpWebRequest`对象,并设置方法为POST,内容类型为JSON,以及POST数据的长度。接着,写入POST数据到请求流中。最后,获取并处理...

    c#以POST方式模拟提交表单 - 真功夫

    ### C#以POST方式模拟提交表单 - 关键知识点解析 #### 一、知识点概览 本文档将基于“c#以POST方式模拟提交表单”这一主题进行深入解析,主要内容涉及C#语言如何实现HTTP POST请求来模拟提交表单数据,并通过具体的...

    C#实现Http post方式 服务端+客户端源码

    C#实现Http post方式 服务端+客户端源码,修改成你的ip端口,直接运行可用 【核心代码】 //提供一个简单的、可通过编程方式控制的 HTTP 协议侦听器。此类不能被继承。 httpobj = new HttpListener(); //定义url及...

    C#Post带参数请求+WebService接口.zip

    结合压缩包中的示例,你将能够学习到如何在C#中构建POST请求以调用一个WebService接口,同时传递参数并处理响应。理解这些概念对于任何希望使用C#进行Web通信的开发者来说都是至关重要的。通过实践这些代码,你不仅...

    http post方式上传文件(C#)

    本文将深入探讨如何使用C#进行HTTP POST方式的文件上传,并关注一些关键点,如文件大小不受限制、上传进度显示以及确保文件的稳定传输。 首先,我们要理解HTTP POST请求的工作原理。POST请求是HTTP协议中的一个方法...

    c#实现http post方法实例

    本实例将详细讲解如何在C#环境中实现HTTP POST请求,以实现数据的发送和接收。 HTTP POST方法是HTTP协议中的一个请求类型,它允许客户端向服务器发送数据,常用于提交表单或上传文件。在C#中,我们可以使用多种方式...

    C#使用Http Post方式传递Json数据字符串调用Web Service

    C#中通过直接添加引用的方来调用Web Service的方式不够灵活,故采取手动发送Http请求的方式来调用Web Service。最后选择使用Post方式来调用Web Service

    C#POST请求WCF服务

    本篇将深入探讨如何使用C#进行POST请求操作来调用WCF服务,并处理带有输入参数和返回值的JSON字符串。 首先,理解WCF服务的基础知识至关重要。WCF服务是一种能够跨越多个应用程序和网络边界通信的服务。它支持多种...

    C# http post jason简单示例

    在.NET开发环境中,C#是一种常用的编程...总之,C#结合Newtonsoft.Json库提供了一种强大的方式来处理HTTP POST JSON请求,这在与Web API交互时非常有用。通过理解和实践这些概念,开发者可以更高效地构建网络通信功能。

    C#通过post提交json字符串

    本文将详细介绍如何使用C#语言通过POST方式提交JSON字符串,并提供一个完整的示例代码。 #### 二、知识点详细解析 ##### 2.1 HTTP POST请求简介 POST请求是一种客户端向服务器发送数据的方式,通常用于创建资源...

    C# post模拟提交接收图片存到服务器上

    在C#编程中,模拟POST提交通常用于模拟用户在网页上的表单提交行为,例如上传文件,特别是图片。这个过程涉及到HTTP协议的理解、文件流处理以及服务器端的存储逻辑。以下将详细介绍如何实现这个功能。 首先,理解...

    C# 后台请求接口的方法(GET,POST)

    根据给定的文件信息,我们可以总结出以下关于C#后台请求接口的方法(GET, POST)的知识点: ...以上就是关于C#后台请求接口的方法(GET, POST)的知识点总结,希望能对理解和使用这两种请求方式有所帮助。

    c#post请求API

    /// /// Post方式提交数据,返回网页的源代码 /// /// 发送请求的 URL /// 请求的参数集合 /// 远程资源的响应结果</returns>

    C# 使用Get和Post请求获取数据

    综上所述,C#通过`HttpClient`类提供的方法可以方便地执行GET和POST请求,获取Web服务的数据。而处理返回的JSON数据,我们可以利用`System.Text.Json`库进行序列化和反序列化操作,使得数据处理更加便捷高效。这些...

    C# Spring.Net演示实例【更新版】(IOC、AOP、属性注入、构造函数注入、通知过滤器)

    今天有空,写了基于C#使用Spring.Net的演示实例,希望能给有需要的人带来帮助,其中演示了配置下的IOC、AOP、属性注入、构造函数注入、通知过滤器、以及不使用配置直接代码硬编的AOP动态代码过程,另外还增加了...

    C# WebService 客户端 服务器 Get Post

    本篇将详细阐述C# WebService客户端和服务器如何利用GET和POST方法进行数据传输。 首先,我们要了解什么是Web Service。Web Service是一种基于互联网的标准协议,它允许不同系统之间的应用程序通过网络共享数据和...

    c# post提交接收数据

    在C#编程中,POST提交数据是常见的网络通信方式,特别是在Web应用开发中,比如向服务器发送表单数据、API接口交互等。本教程将详细讲解如何在C#中实现POST请求并接收返回的数据。 首先,理解POST请求的基本概念:...

Global site tag (gtag.js) - Google Analytics