using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
namespace Com.AUO.SRM.Library.Public.Utility
{
public class CallAPI
{
#region PostFunction
public static string PostFunction(string postDataStr, string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json";
Stream myRequestStream = request.GetRequestStream();
StreamWriter myStreamWriter = new StreamWriter(myRequestStream, System.Text.Encoding.UTF8);
myStreamWriter.Write(postDataStr);
myStreamWriter.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, System.Text.Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}
#endregion
#region GetFunction
public static string GetFunction(string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}
public static string GetFunctionAgent(string url)
{
WebProxy proxy = WebProxy.GetDefaultProxy();
// WebProxy proxy = new WebProxy("10.5.13.39", 80);
//proxy.Credentials = new NetworkCredential("qilinchen", "abc123!@#004");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
request.Proxy = proxy;
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36";
request.Accept = "text/ html, application / xhtml + xml, */*";
request.KeepAlive = true;
request.Headers.Add("Accept-Language", "zh-cn,en-us;q=0.5");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}
#endregion
#region 异步调用Web API
static byte[] postData = null;
public void AsyncPostFunction(string postDataStr, string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.KeepAlive = true;
request.Timeout = 300000;
request.ContentType = "application/json";
postData = Encoding.UTF8.GetBytes(postDataStr);
request.BeginGetRequestStream(new AsyncCallback(RequestStreamCallBack), request);
}
public static void RequestStreamCallBack(IAsyncResult result)
{
HttpWebRequest request = (HttpWebRequest)result.AsyncState;
Stream reqStream = request.EndGetRequestStream(result);
reqStream.Write(postData, 0, postData.Length);
reqStream.Close();
request.BeginGetResponse(new AsyncCallback(ResponseCallBack), request);
}
public static void ResponseCallBack(IAsyncResult result)
{
try
{
HttpWebRequest req = (HttpWebRequest)result.AsyncState;
HttpWebResponse response = (HttpWebResponse)req.EndGetResponse(result);
using (Stream sw = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(sw))
{
string xmls = reader.ReadToEnd();
}
}
if (response != null) response.Close();
}
catch (Exception ex)
{
LogHelper.Write(ex.ToString(), LogCategory.Info, System.Diagnostics.TraceEventType.Information);
}
}
#endregion
public static string XMLPostFunctionAgent(string postDataStr, string url)
{
WebProxy proxy = WebProxy.GetDefaultProxy();
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
// WebProxy proxy =new WebProxy("10.5.13.17", 80);
// proxy.Credentials = new NetworkCredential("qilinchen", "abc123!@#004");
int len = postDataStr.Length;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "text/xml";
request.Credentials = CredentialCache.DefaultNetworkCredentials;
request.ContentLength = len;
request.Proxy = proxy;
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36";
request.Accept = "text/ html, application / xhtml + xml, */*";
request.KeepAlive = false;
request.Headers.Add("Accept-Language", "zh-cn,en-us;q=0.5");
ASCIIEncoding ascii = new ASCIIEncoding();
Stream myRequestStream = request.GetRequestStream();
byte[] bt = ascii.GetBytes(postDataStr);
myRequestStream.Write(bt, 0, len);
// StreamWriter myStreamWriter = new StreamWriter(myRequestStream, System.Text.Encoding.UTF8);
// myStreamWriter.Write(postDataStr);
// myStreamWriter.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, System.Text.Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}
public static string XMLPostFunction(string postDataStr, string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/xml";
Stream myRequestStream = request.GetRequestStream();
StreamWriter myStreamWriter = new StreamWriter(myRequestStream, System.Text.Encoding.UTF8);
myStreamWriter.Write(postDataStr);
myStreamWriter.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, System.Text.Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}
}
}
【笔记】访问WebAPI方法封装
猜你喜欢
转载自blog.csdn.net/Csongxuan/article/details/81222351
今日推荐
周排行