c#后台访问接口

直接上代码

后台代码

//接口地址string url = "http://spherefg.topsmoon.com:6666/restapi/Comment/SubmitCommentFromPC?commentPeople=1067&comment=%E4%B8%AD%E8%AF%84&content=%E6%B5%8B%E8%AF%95&taskId=1160&userId=1";
//Get请求
            HttpWebResponse w = HttpHelper.CreateGetHttpResponse(url, 30000, null, null);
            StreamReader sr = new StreamReader(w.GetResponseStream());

            string/*这是Json字符串*/ jsonstr = sr.ReadToEnd();

工具类:

using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.Text;
public class HttpHelper
{

    /// <summary>
    /// 创建GET方式的HTTP请求
    /// </summary>
    ///
    public static HttpWebResponse CreateGetHttpResponse(string url, int timeout, string userAgent, CookieCollection cookies)
    {
        HttpWebRequest request = null;
        if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
        {
            //对服务端证书进行有效性校验(非第三方权威机构颁发的证书,如自己生成的,不进行验证,这里返回true)
            ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
            request = WebRequest.Create(url) as HttpWebRequest;
            request.ProtocolVersion = HttpVersion.Version10;    //http版本,默认是1.1,这里设置为1.0
        }
        else
        {
            request = WebRequest.Create(url) as HttpWebRequest;
        }
        request.Method = "GET";

        //设置代理UserAgent和超时
        //request.UserAgent = userAgent;
        //request.Timeout = timeout;
        if (cookies != null)
        {
            request.CookieContainer = new CookieContainer();
            request.CookieContainer.Add(cookies);
        }
        return request.GetResponse() as HttpWebResponse;
    }

    /// <summary>
    /// 创建POST方式的HTTP请求
    /// </summary>
    public static HttpWebResponse CreatePostHttpResponse(string url, IDictionary<string, string> parameters, int timeout, string userAgent, CookieCollection cookies)
    {
        HttpWebRequest request = null;
        //如果是发送HTTPS请求
        if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
        {
            //ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
            request = WebRequest.Create(url) as HttpWebRequest;
            //request.ProtocolVersion = HttpVersion.Version10;
        }
        else
        {
            request = WebRequest.Create(url) as HttpWebRequest;
        }
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";

        //设置代理UserAgent和超时
        //request.UserAgent = userAgent;
        //request.Timeout = timeout; 

        if (cookies != null)
        {
            request.CookieContainer = new CookieContainer();
            request.CookieContainer.Add(cookies);
        }
        //发送POST数据
        if (!(parameters == null || parameters.Count == 0))
        {
            StringBuilder buffer = new StringBuilder();
            int i = 0;
            foreach (string key in parameters.Keys)
            {
                if (i > 0)
                {
                    buffer.AppendFormat("&{0}={1}", key, parameters[key]);
                }
                else
                {
                    buffer.AppendFormat("{0}={1}", key, parameters[key]);
                    i++;
                }
            }
            byte[] data = Encoding.ASCII.GetBytes(buffer.ToString());
            using (Stream stream = request.GetRequestStream())
            {
                stream.Write(data, 0, data.Length);
            }
        }
        string[] values = request.Headers.GetValues("Content-Type");
        return request.GetResponse() as HttpWebResponse;
    }

    /// <summary>
    /// 获取请求的数据
    /// </summary>
    public static string GetResponseString(HttpWebResponse webresponse)
    {
        using (Stream s = webresponse.GetResponseStream())
        {
            StreamReader reader = new StreamReader(s, Encoding.UTF8);
            return reader.ReadToEnd();

        }
    }

    /// <summary>
    /// 验证证书
    /// </summary>
    private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
    {
        if (errors == SslPolicyErrors.None)
            return true;
        return false;
    }
}
时间: 2024-10-13 01:03:21

c#后台访问接口的相关文章

ios网络访问接口-NSURLSession与NSURLConnection的区别

AFNetworking是日常开发中最常用的网络框架,现在我们使用的版本是3.0版,3.0与2.0版最大的区别就是,AFNetworking 2.0使用NSURLConnection的基础API ,而3.0是完全基于NSURLSession的API,已经抛弃了NSURLConnection.而NSURLSession可以看作是是NSURLConnection 的替代者,在2013年苹果全球开发者大会(WWDC2013)随ios7一起发布,是对NSURLConnection进行了重构优化后的新的网

跨域访问接口上传图片出现options请求问题解决方法

1.首先因为服务器端会先发送一个option请求到后台  在后台返回一个post给页面 页面在处理post请求给接口 2.先写一个过滤器, 我们自己定义一个过滤器 package com.adtime.dsp.web.controller; import java.io.IOException; import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import

两种访问接口的方式(get和post)

跨机器.跨语言的远程访问形式一共有三种:scoket发送数据包.http发送请求.rmi远程连接: http发送请求方式:分为post和get两种方式 importjava.io.IOException; importjava.io.InputStream; import java.util.Map; importjava.util.concurrent.atomic.AtomicInteger; importorg.apache.commons.httpclient.HttpClient; i

无法创建链接服务器 &quot;TEST&quot; 的 OLE DB 访问接口 &quot;OraOLEDB.Oracle&quot; 的实例

在使用SQLserver建立远程服务连接Oracle的时候出现先买年错误 出现这个错误,我找到最常见的两个原因 1.注册表 <1>按下WIN+R,打开“运行”窗口,输入“regedit”,回车 <2>在打开的注册表编辑器的左侧按如下路径依次展开: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\Providers 在Providers下面一般来说是看不到OraOLEDB.Oracle这一项的,于是

无法执行该操作,因为链接服务器 &quot;xxxxx&quot; 的 OLE DB 访问接口 &quot;SQLNCLI&quot; 无法启动分布式事务

在存储过程中使用事务,并且使用链接服务器时,报类似下面的错误 链接服务器"****"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "没有活动事务.".消息 7391,级别 16,状态 2,过程 proc_SyncDiliveryData,第 20 行无法执行该操作,因为链接服务器 "*****r" 的 OLE DB 访问接口 "SQLNCLI10" 无法启动分布式事务. 度娘了很久,找到了

在vue-cli搭建的项目中在后台mock接口中支持req.body和req.cookies

在<vue-cli搭建的项目中增加后台mock接口>中实现了后台mock,但是前端post的t数据都要在mock的后台接口中使用req的接收数据事件获取http协议body中的数据. req.on('data', function(chunk){ //接收字节数据 }); req.end('data', function(){ //转换||处理 }); req.error('error', function(e){ //处理错误 }); 如果前端需要使用cookie,后端要读取,那么在后台mo

Windows的性能计数器访问接口

[b]0.简介[/b] Windows提供了一个性能监视器(Perfmon.msc)来跟踪应用程序的性能,还提供了一组性能计数器API, 可以方便的在应用程序中读取这些性能数据. 我们可以通过这些数据,来寻找系统或软件中的瓶颈,找出软件到底慢在哪儿.需要改进/升级哪儿. 在MSDN中的位置: MSDN Library for Visual Studio .NET 2003: ms-help://MS.MSDNQTR.2003FEB.2052/perfmon/base/performance_da

Hive的访问接口

Hive提供了三种客户端访问接口: 1)Hive CLI(Hive Command Line,Hive命令行),客户端可以直接在命令行模式下进行操作. 2)hwi(Hive Web Interface,Hive Web接口),Hive提供了更直观的Web界面 3)hiveserver,Hive提供了Thrift服务,Thrift客户端目前支持C++/Java/PHP/Python/Ruby. 下面我们来分别尝试下这三种接口访问方式: 一.Hive CLI 直接键入hive命令即可进入CLI模式:

wdcp后台访问安全设置即限制域名/IP访问设置及清除方法

wdcp后台默认是用到8080端口的(可自行修改)但搜索引擎的强大,有些连这个也给收录进来了所以,之前就人反馈,如何限制这个后台的访问 wdcp从2.4开始,支持这个限制,只需要在后台上操作下就可以支持来路的IP限制,及服务端上的域名访问限制两种方式 具体如下 在后台 > 系统设置 后台访问IP,是指限制可以访问后台的来路IP,可以设置某个IP或IP段比如,我的IP是固定的,如192.168.1.100,那就可以在这里设置为192.168.1.100,这样其它的所有IP都是打不开的同时也可以是I