C# http请求带请求头部分

使用js+Ajax请求API接口数据-带请求头方式

直接上代码

前台调用:

<script type="text/javascript">
        function zLoginCheck() {
            var Account = ‘admin;
            var Password = ‘DC483E80A7A0BD9EF71D8CF973673924‘;

            var str = {
                Account: Account,
                Password: Password
            }
            $.ajax({
                type: "POST",
                url: ‘/Handle/zLogin.ashx‘,
                dataType: ‘json‘,
                data: JSON.stringify(str),//
                beforeSend: function (request) {
                    request.setRequestHeader("Method", "Login");
                    request.setRequestHeader("timespan", "1487586970772");
                    request.setRequestHeader("Nonce", "726757");
                    request.setRequestHeader("Token", "615d1c0ab53315a2");
                    request.setRequestHeader("Account", "");
                    request.setRequestHeader("Source", "2");
                    request.setRequestHeader("Version", "139");
                    request.setRequestHeader("Sign", "5329E35A3F60B7DFA147D20EF377888C");
                    request.setRequestHeader("Host", "wsmvip.aisidi.com");
                    request.setRequestHeader("Content - Length", "76");
                },
                success: function (data) {
                    if (data.Code == "0000") {
                        alert(JSON.stringify(data.Data));
                        alert("Token:" + data.Data.Token);
                    } else {
                        alert(‘登录失败:‘ + data.Message);
                    }
                },
                complete: function (XMLHttpRequest, textStatus) {
                    this; // 调用本次AJAX请求时传递的options参数
                }
            });
        }
    </script>

后台部分:

    /// <summary>
    /// 后台再请求别的接口的方法,体现了添加request header
    /// </summary>
    /// <returns></returns>
    public string Login(string RequestString, HttpContext context)
    {
        string url = https://xxx.xxxx.com/Services/Login.ashx;
        string json = "";
        Encoding encoding = Encoding.UTF8;
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "post";
        request.Headers.Add("Method", context.Request.Headers["Method"]);
        request.Headers.Add("timespan", context.Request.Headers["Timespan"]);
        request.Headers.Add("Nonce", context.Request.Headers["Nonce"]);
        request.Headers.Add("Token", context.Request.Headers["Token"]);
        request.Headers.Add("Account", System.Web.HttpUtility.UrlDecode(context.Request.Headers["Account"]));
        request.Headers.Add("Source", context.Request.Headers["Source"]);
        request.Headers.Add("Version", context.Request.Headers["Version"]);
        request.Headers.Add("Sign", context.Request.Headers["Sign"]);

        request.Accept = "text/html, application/xhtml+xml, */*";
        request.ContentType = "application/x-www-form-urlencoded";
        byte[] buffer = encoding.GetBytes(RequestString.ToString());
        request.ContentLength = buffer.Length;
        request.GetRequestStream().Write(buffer, 0, buffer.Length);
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
        {
            json = reader.ReadToEnd();
        }
        return json;
    }
时间: 2024-10-26 13:52:36

C# http请求带请求头部分的相关文章

HTTP请求模型和头信息参考

发送HTTP请求:一个请求由四个部分组成:请求行.请求头标.空行和请求数据 请求行 请求行由三个标记组成:请求方法.请求URI和HTTP版本,它们用空格分隔.例如:GET /index.html HTTP/1.1 HTTP规范定义了8种可能的请求方法: GET            检索URI中标识资源的一个简单请求HEAD            与GET方法相同,服务器只返回状态行和头标,并不返回请求文档POST            服务器接受被写入客户端输出流中的数据的请求PUT     

[面试没答上的问题1]http请求,请求头和响应头都有什么信息?

最近在找工作,面试官问了一些问题自己并没有回答上,这里做一个小结. http请求,请求头和响应头都有什么信息? 页面和服务器交互最常见的方式就是ajax,ajax简单来说是浏览器发送请求到服务端,然后服务端返回数据,常见的请求头和响应头如下图所示. 先看通用信息,通用信息有三个字段: 请求url, 请求方法, 状态码, 远程地址. 看下请求头Request Headers, Accept : 指定客户端能够接收的内容类型,内容类型中的先后次序表示客户端接收的先后次序.在Ajax代码中,可以使用X

04-SpringMVC_RequestMapping_请求参数&请求头

1 params和headers支持简单的表达式 param1:表示请求必须包含名为param1的请求参数 !param1:表示请求不能包含名为param1的请求参数 param1!=value1:表示请求包含名为param1的参数,但其值不能为value1 {"param1=value1",param2}:请求必须包含名为param1和param2的两个请求参数,且param1的参数的值必须是value1 2 测试params 2.1 控制器类 @RequestMapping(val

[转]HTTP请求模型和头信息参考

参考: http://blog.csdn.net/baggio785/archive/2006/04/13/661410.aspx模型: http://blog.csdn.net/baggio785/archive/2006/04/13/661412.aspx HTTP请求模型 一.连接至Web服务器一个客户端应用(如Web浏览器)打开到Web服务器的HTTP端口的一个套接字(缺省为80). 例如:http://www.myweb.com:8080/index.html在Java中,这将等同于代

curl get请求添加header头信息

function get($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPGET, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //TRUE 将curl_exec()获取的信息以字符串返回,而不是直接输出. $header = ['User-Agent: php test']; //设置一个你的浏览器agent的header curl_setopt($ch, CURLOPT

[ Laravel 5.5 文档 ] 处理用户请求 —— HTTP 请求的过滤器:中间件

[ Laravel 5.5 文档 ] 处理用户请求 -- HTTP 请求的过滤器:中间件 http://laravelacademy.org/post/7812.html 简介 中间件为过滤进入应用的 HTTP 请求提供了一套便利的机制.例如,Laravel 内置了一个中间件来验证用户是否经过认证(如登录),如果用户没有经过认证,中间件会将用户重定向到登录页面,而如果用户已经经过认证,中间件就会允许请求继续往前进入下一步操作. 当然,除了认证之外,中间件还可以被用来处理很多其它任务.比如:COR

[SoapUI] 通过SoapUI发送POST请求,请求的body是JSON格式的数据

通过SoapUI发送POST请求,请求的body是JSON格式的数据: data={"currentDate":"2015-06-19","reset":true} 而且通过Fiddler抓取页面报文 Content-Type 是 application/x-www-form-urlencoded 一开始我将Content-Type = application/x-www-form-urlencoded 加到Header 里面. SoapUI里面

servlet的同步请求异步请求以及请求转发与重定型的区别

在javaWeb阶段,前端页面发送请求有两种: 1.同步请求 2.异步请求 同步请求与异步请求的区别是:同步请求跳转界面,异步请求只传递数据,不会跳转界面 (即使用同步请求,servelt响应的是一个界面,前台需要加载这个新的界面的图片样式脚本等诸多资源,而是用异步请求的话,只传递数据,不会刷新资源) 做一个简单的案例: 1.新建一个页面login.jsp <%@ page contentType="text/html;charset=UTF-8" language="

背水一战 Windows 10 (64) - 控件(WebView): 加载指定 HttpMethod 的请求, 自定义请求的 http header, app 与 js 的交互

[源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(WebView) 加载指定 HttpMethod 的请求 自定义请求的 http header app 与 js 的交互 示例1.演示 WebView 如何加载指定 HttpMethod 的请求以及如何自定义请求的 http headerWebApi/Controllers/WebViewPostController.cs /* * 用于 WebView 演示“如何加载指定 HttpMethod 的请求,以及如何自