C# HttpHelper
public enum HttpVerb
{
Get,
Post
} public class HttpHelper
{
private string _contentType = "application/x-www-form-urlencoded";
//private string _contentType = "application/json";
//private string _contentType = "text/xml";
private int _timeout = ; public string EndPoint { get; set; }
public HttpVerb Method { get; set; }
public string ContentType { get { return _contentType; } set { _contentType = value; } }
public string PostData { get; set; } /// <summary>
/// 默认15000毫秒
/// </summary>
public int Timeout { get { return _timeout; } set { _timeout = value; } } public HttpHelper(string endpoint)
{
EndPoint = endpoint;
Method = HttpVerb.Get;
ContentType = _contentType;
PostData = "{}";
} public string Post(string data)
{
var service = new Uri(EndPoint);
var request = WebRequest.CreateHttp(service);
request.Method = "POST";
request.Timeout = Timeout;
request.KeepAlive = true;
request.ContentLength = ;
request.ContentType = ContentType;
request.Accept = "application/json"; var bytes = Encoding.UTF8.GetBytes(data);
request.ContentLength = bytes.Length;
using (var writeStream = request.GetRequestStream())
{
writeStream.Write(bytes, , bytes.Length);
} using (var response = (HttpWebResponse)request.GetResponse())
{
var responseValue = string.Empty;
if (response.StatusCode != HttpStatusCode.OK)
{
var message = String.Format(CultureInfo.CurrentCulture, "Request failed. Received HTTP {0}", response.StatusCode);
throw new WebException(message);
}
using (var responseStream = response.GetResponseStream())
{
if (responseStream != null)
using (var reader = new StreamReader(responseStream))
{
responseValue = reader.ReadToEnd();
}
}
return responseValue;
}
} /// <summary>
/// Request server
/// </summary>
/// <param name="parameters">eg. "?q=1234"</param>
/// <returns></returns>
public string Get(string parameters)
{
var service = new Uri(EndPoint + parameters);
var request = WebRequest.CreateHttp(service);
request.Method = "GET";
request.Timeout = Timeout;
request.KeepAlive = true;
request.ContentLength = ;
request.ContentType = ContentType; using (var response = (HttpWebResponse)request.GetResponse())
{
var responseValue = string.Empty;
if (response.StatusCode != HttpStatusCode.OK)
{
var message = String.Format(CultureInfo.CurrentCulture, "Request failed. Received HTTP {0}", response.StatusCode);
throw new WebException(message);
}
using (var responseStream = response.GetResponseStream())
{
if (responseStream != null)
using (var reader = new StreamReader(responseStream))
{
responseValue = reader.ReadToEnd();
}
}
return responseValue;
}
} /// <summary>
/// 下载更新二进制文件
/// </summary>
/// <param name="parameters">eg. "?q=1234"</param>
/// <returns></returns>
public byte[] DownLoad(string parameters)
{
var service = new Uri(EndPoint + parameters);
var request = WebRequest.CreateHttp(service);
request.Timeout = Timeout;
request.KeepAlive = true;
request.Method = Method.ToString().ToUpper(CultureInfo.CurrentCulture);
request.ContentLength = ;
request.ContentType = ContentType; if (Method == HttpVerb.Post)
{
var bytes = Encoding.UTF8.GetBytes(PostData);
request.ContentLength = bytes.Length; using (var writeStream = request.GetRequestStream())
{
writeStream.Write(bytes, , bytes.Length);
}
} using (var response = (HttpWebResponse)request.GetResponse())
{
if (response.StatusCode != HttpStatusCode.OK)
{
var message = String.Format(CultureInfo.CurrentCulture, "Request failed. Received HTTP {0}", response.StatusCode);
throw new WebException(message);
}
using (var result = new MemoryStream())
{
const int bufferLen = ;
var buffer = new byte[bufferLen];
using (var responseStream = response.GetResponseStream())
{
if (responseStream != null)
{
var len = responseStream.Read(buffer, , bufferLen);
while (len > )
{
result.Write(buffer, , len);
len = responseStream.Read(buffer, , bufferLen);
}
}
}
return result.ToArray();
}
}
} }
C# HttpHelper的更多相关文章
- HttpHelper
/// <summary> /// 类说明:HttpHelper类,用来实现Http访问,Post或者Get方式的,直接访问,带Cookie的,带证书的等方式,可以设置代理 /// 重要提 ...
- 抓取百万知乎用户信息之HttpHelper的迭代之路
什么是Httphelper? httpelpers是一个封装好拿来获取网络上资源的工具类.因为是用http协议,故取名httphelper. httphelper出现的背景 使用WebClient可以 ...
- Lind.DDD.Utils.HttpHelper里静态对象引出的Http超时问题
回到目录 Lind.DDD.Utils.HttpHelper组件主要实现了对HTTP的各种操作,如Get,Post,Put和Delete,它属于最纯粹的操作,大叔把它封装的目的主要为了实现与API安全 ...
- Sokcet方式请求HTTP/HTTPS的封装类HttpHelper
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; ...
- HttpHelper类
using System;using System.Collections.Generic;using System.Text;using System.Net;using System.IO;usi ...
- HttpHelper类登录淘宝联盟并下载淘宝客订单xls
本次开发环境与工具如下:IE9.0浏览器 + IE抓包插件HttpWatch +WIN7 64位系统 + VS2005 IDE + .NET 2.0框架本想上传HttpWatch抓包插件,但由于文件超 ...
- C# HttpHelper 采集
httphelper http://www.sufeinet.com/thread-6-1-1.html
- [C#HttpHelper]类1.4正式版教程与升级报告
[C#HttpHelper]类1.4正式版教程与升级报告 导读 1.升级报告 2.HttpHelper1.4正式版下载 3.HttpHelper类使用方法, 4.最简单的Post与Get的写法 ...
- 使用苏飞httphelper开发自动更新发布文章程序
最近新上线了一个网站,专门收集网上签到赚钱,有奖活动等等的网站 我就要集分宝 http://www.591jfb.com.新建立 了一个栏目"每日更新",这样就需要每天都登录到网站 ...
- 完整HttpHelper类
[代码] [C#]代码 using System; using System.Collections.Generic; using System.Text; using System.Net; usi ...
随机推荐
- MongoDB .Net Driver(C#驱动) - 内嵌数组/嵌入文档的操作(增加、删除、修改、查询(Linq 分页))
目录 一.前言 1. 运行环境 二.前期准备工作 1. 创建 MongoDBContext MongoDb操作上下文类 2.创建测试类 3.创建测试代码 三.内嵌数组增加元素操作 1.Update.S ...
- CF834D The Bakery
题目链接:戳我 题意:将一个长度为n的序列分为k段,使得总价值最大.一段区间的价值表示为区间内不同数字的个数 \(n<=35000,k<=50\) 开始想的转移方程是这个样子的--\(dp ...
- MyBatis高级及其SSM框架搭建
代码生成器 首先meaven项目中导入支持包 <dependencies> <!-- https://mvnrepository.com/artifact/mysql/mysql-c ...
- RabbitMq初探——消息均发
消息均发 前言 由前文 RabbitMq初探——消息分发 可知,rabbitmq自带分发机制——消息会按顺序的投放到该队列下的多个消费者,例如1,3,5投放消费者C1,2,4,6投放消费者C2. 这就 ...
- 洛谷P4069 [SDOI2016]游戏(李超线段树)
题面 传送门 题解 如果我们把路径拆成两段,那么这个路径加可以看成是一个一次函数 具体来说,设\(dis_u\)表示节点\(u\)到根节点的距离,那么\((x,lca)\)这条路径上每个节点的权值就会 ...
- 2017.06.04【NOIP提高组】模拟赛B组:
t1 jzoj3762 过河 路径分段,计算出向上移对答案贡献最大的一段路,再使用堆来维护即可 代码: #include<bits/stdc++.h> using namespace st ...
- java后台简单从阿里云上传下载文件并通知前端以附件的形式保存
一. 首先开通阿里的OSS 服务 创建一个存储空间在新建一个Bucket 在你新建的bucket有所需的id和key 获取外网访问地址或者是内网 看个人需求 我使用的是外网(内网没用过 估计是部署到阿 ...
- 官宣,PyTorch 1.0 稳定版本现已推出
简评:快来一起快乐地学习吧. 随着 PyTorch 生态系统和社区继续为开发人员提供有趣的新项目和教育资源,今天(12 月 7日)在 NeurIPS 会议上发布了 PyTorch 1.0 稳定版.研究 ...
- C语言多线程编程二
一. 线程通信----事件: 1.一对一模式: #include <stdio.h> #include <stdlib.h> #include <Windows.h> ...
- iOS学习笔记(8)——GCD初探
1. AppDelegate.m #import "AppDelegate.h" #import "ViewController.h" @interface A ...