You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

50 lines
1.5 KiB

using System.IO;
using System.Net;
using System.Text;
using BWP.ABCClient.Exceptions;
namespace BWP.ABCClient
{
public class Request
{
public string Message { get; set; }
public string Url { get; set; }
public Encoding RequestEncoding { get; set; }
public Encoding ResponseEncoding { get; set; }
public string ProxyIP { get; set; }
public int ProxyPort { get; set; }
public string Run()
{
ServicePointManager.ServerCertificateValidationCallback = delegate {
return true;
};
var request = (HttpWebRequest)WebRequest.Create(Url);
if (!string.IsNullOrEmpty(ProxyIP) && ProxyPort != 0) {
request.Proxy = new WebProxy(ProxyIP, ProxyPort);
}
request.Method = "POST";
request.ProtocolVersion = HttpVersion.Version10;
request.ContentType = "application/x-www-form-urlencoded";
byte[] bytes = RequestEncoding.GetBytes(Message);
request.ContentLength = bytes.Length;
using (var stream = request.GetRequestStream()) {
stream.Write(bytes, 0, bytes.Length);
}
var response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode != HttpStatusCode.OK) {
throw new HttpException("网上支付平台服务暂时停止 " + response.StatusCode);
}
using (var responseStream = response.GetResponseStream()) {
using (var reader = new StreamReader(responseStream, ResponseEncoding)) {
return reader.ReadToEnd();
}
}
}
}
}