如何处理人际关系,HttpWebRequest处理合作关系

class Http
{
public static string GetHtml(string URL)
{
WebRequest wrt;
wrt = WebRequest.Create(URL);
wrt.Credentials = CredentialCache.DefaultCredentials;
WebResponse wrp;
wrp = wrt.GetResponse();
return new StreamReader(wrp.GetResponseStream(), Encoding.UTF8).ReadToEnd();
}
public static string GetHtml(string URL, out string cookie)
{
WebRequest wrt;
wrt = WebRequest.Create(URL);
wrt.Credentials = CredentialCache.DefaultCredentials;
WebResponse wrp;
wrp = wrt.GetResponse();
string html = new StreamReader(wrp.GetResponseStream(), Encoding.UTF8).ReadToEnd();
cookie = wrp.Headers.Get("Set-Cookie");
return html;
}
public static string GetHtml(string URL, string postData, string cookie, out string header)
{
return GetHtml("http://gubapost.eastmoney.com", URL, postData, cookie, out header);
}
public static string GetHtml(string server, string URL, string postData, string cookie, out string header)
{
byte[] byteRequest = Encoding.Default.GetBytes(postData);
return GetHtml(server, URL, byteRequest, cookie, out header);
}
public static string GetHtml(string server, string URL, byte[] byteRequest, string cookie, out string header)
{
byte[] bytes = GetHtmlByBytes(server, URL, byteRequest, cookie, out header);
Stream getStream = new MemoryStream(bytes);
StreamReader streamReader = new StreamReader(getStream, Encoding.UTF8);
string getString = streamReader.ReadToEnd();
streamReader.Close();
getStream.Close();
return getString;
}
public static byte[] GetHtmlByBytes(string server, string URL, byte[] byteRequest, string cookie,out string header)
{
long contentLength;
HttpWebRequest httpWebRequest;
HttpWebResponse webResponse;
Stream getStream;
httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(URL);
CookieContainer co = new CookieContainer();
co.SetCookies(new Uri(server), cookie);
httpWebRequest.CookieContainer = co;
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
httpWebRequest.Accept =
"image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-shockwave-flash, */*";
httpWebRequest.Referer = "http://guba.eastmoney.com/look,gssz,8181701.html";
httpWebRequest.UserAgent =
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)";
httpWebRequest.Method = "Post";
httpWebRequest.ContentLength = byteRequest.Length;
Stream stream;
stream = httpWebRequest.GetRequestStream();
stream.Write(byteRequest, 0, byteRequest.Length);
stream.Close();
webResponse = (HttpWebResponse)httpWebRequest.GetResponse();
header = webResponse.Headers.ToString();
getStream = webResponse.GetResponseStream();
contentLength = webResponse.ContentLength;
byte[] outBytes = new byte[contentLength];
outBytes = ReadFully(getStream);
getStream.Close();
return outBytes;
}
public static byte[] ReadFully(Stream stream)
{
byte[] buffer = new byte[128];
using (MemoryStream ms = new MemoryStream())
{
while (true)
{
int read = stream.Read(buffer, 0, buffer.Length);
if (read <= 0)
return ms.ToArray();
ms.Write(buffer, 0, read);
}
}
}
public static string GetHtml(string URL, string cookie, out string header)
{
return GetHtml(URL, cookie, out header, "http://gubapost.eastmoney.com");
}
public static string GetHtml(string URL, string cookie, out string header, string server)
{
HttpWebRequest httpWebRequest;
HttpWebResponse webResponse;
Stream getStream;
StreamReader streamReader;
string getString = "";
httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(URL);
httpWebRequest.Accept = "*/*";
httpWebRequest.Referer = "http://guba.eastmoney.com/topic,hxnc.html";
CookieContainer co = new CookieContainer();
co.SetCookies(new Uri(server), cookie);
httpWebRequest.CookieContainer = co;
httpWebRequest.UserAgent =
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)";
httpWebRequest.Method = "GET";
webResponse = (HttpWebResponse)httpWebRequest.GetResponse();
header = webResponse.Headers.ToString();
getStream = webResponse.GetResponseStream();
streamReader = new StreamReader(getStream, Encoding.UTF8);
getString = streamReader.ReadToEnd();
streamReader.Close();
getStream.Close();
return getString;
}
#region --stream--
public static Stream GetStreamByBytes(string server, string URL, byte[] byteRequest, string cookie,
out string header)
{
Stream stream = new MemoryStream(GetHtmlByBytes(server, URL, byteRequest, cookie, out header));
return stream;
}
#endregion
}
//实例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.ApplicationBlocks.Data;
using System.Data;
using System.Threading;
using System.Net;
using System.IO;
namespace SyncData
{
class Program
{
static void Main(string[] args)
{
string connString = "Data Source=192.168.1.248;Initial Catalog=Vote;User ID=zxhddbuser;Password=123456;Max Pool Size =512; Min Pool Size = 10;";
//SqlHelper.CreateCommand()
int sleepSeconds = 60;
while (true)
{
try
{
DataSet ds = SqlHelper.ExecuteDataset(connString, CommandType.Text, "select * from WenLian_DownImageLog where State != 100");//100表示同步成功
if (ds != null && ds.Tables.Count > 0)
{
DataTable dt = ds.Tables[0];
//System.Console.WriteLine("dt row" + dt.Rows);
foreach (DataRow item in dt.Rows)
{
string id = item["id"].ToString();
string mobile = item["mobile"].ToString();
string content = item["contented"].ToString();
string msgid = item["msgid"].ToString();
string timestamp = item["timestamp"].ToString();
string IsDowmImage = item["IsDowmImage"].ToString();
string wenlianurl = "";
if (IsDowmImage == "0")
{
//下载
wenlianurl = "http://211.147.209.254:8100/wapdl.aspx?" + string.Format("mobile={0}&contentid={1}&msgid={2}&timestamp={3}",
mobile,
content,
msgid,
timestamp);
}
else if (IsDowmImage == "1")
{
//投票
wenlianurl = "http://211.147.209.254:8100/wapvote.aspx?" + string.Format("mobile={0}&msg={1}&msgid={2}&timestamp={3}",
mobile,
content,
msgid,
timestamp);
}
Encoding encoding = Encoding.GetEncoding("utf-8");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(wenlianurl);
request.Method = "GET";
request.ContentType = "application/x-www-form-urlencoded";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, encoding);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
SqlHelper.ExecuteNonQuery(connString, CommandType.Text, "update WenLian_DownImageLog set State = " + retString + " where id = " + id);
}
}
else
{
Thread.Sleep(1000 * sleepSeconds);
}
}
catch (System.Exception ex)
{
System.Console.WriteLine("catch exception + " + ex.ToString());
Thread.Sleep(1000 * sleepSeconds);
}
}
}
}
}
//需要用到using Microsoft.ApplicationBlocks.Data的SqlHelper类
//服务端实例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Threading;
using System.IO;
namespace WebReqHtml
{
internal class WebReqState
{
public byte[] Buffer;
public MemoryStream ms;
public const int BufferSize = 1024;
public Stream OrginalStream;
public HttpWebResponse WebResponse;
public WebReqState()
{
Buffer = new byte[1024];
ms = new MemoryStream();
}
}
public delegate void ReadDataComplectedEventHandler(byte[] data);
class HtmlFromWebReq
{
private Uri url;
public event ReadDataComplectedEventHandler _disibledevent=>
}
protected void readDataCallback(IAsyncResult ar)
{
WebReqState rs = ar.AsyncState as WebReqState;
int read = rs.OrginalStream.EndRead(ar);
if (read > 0)
{
rs.ms.Write(rs.Buffer, 0, read);
rs.OrginalStream.BeginRead(rs.Buffer, 0,
WebReqState.BufferSize, new AsyncCallback(readDataCallback), rs);
}
else
{
rs.OrginalStream.Close();
rs.WebResponse.Close();
if (OnReadDataComplected != null)
{
OnReadDataComplected(rs.ms.ToArray());
}
}
}
protected void responseCallback(IAsyncResult ar)
{
HttpWebRequest req = ar.AsyncState as HttpWebRequest;
if (req == null)
return;
HttpWebResponse response = req.EndGetResponse(ar) as HttpWebResponse;
if (response.StatusCode != HttpStatusCode.OK)
{
response.Close();
return;
}
WebReqState st = new WebReqState();
st.WebResponse = response;
Stream repsonseStream = response.GetResponseStream();
st.OrginalStream = repsonseStream;
repsonseStream.BeginRead(st.Buffer, 0,
WebReqState.BufferSize, new AsyncCallback(readDataCallback), st);
}
public void BeginCreateHtml()
{
HttpWebRequest req =
HttpWebRequest.Create(url.AbsoluteUri) as HttpWebRequest;
req.BeginGetResponse(new AsyncCallback(responseCallback), req);
}
}
}
Tags: 

延伸阅读

最新评论

发表评论