C# 如何从.net向Javaservlet发送请求
如何将以下数据发布到servlet url: 数据: 网址: 我试过了。但我得到了一个错误: 下面是我的代码:C# 如何从.net向Javaservlet发送请求,c#,.net,ccavenue,C#,.net,Ccavenue,如何将以下数据发布到servlet url: 数据: 网址: 我试过了。但我得到了一个错误: 下面是我的代码: StringBuilder sbQueryString = new StringBuilder(); CCACrypto ccaCrypto = new CCACrypto(); string workingKey = "14A246E9D4341159638AC8EB776F3BE6
StringBuilder sbQueryString = new StringBuilder();
CCACrypto ccaCrypto = new CCACrypto();
string workingKey = "14A246E9D4341159638AC8EB776F3BE6";
//put in the 32bit alpha numeric key in the quotes provided here
sbQueryString.Append("enc_request=");
sbQueryString.Append(ccaCrypto.Encrypt(GenerateOrderXml(appointmentId), workingKey));
sbQueryString.Append("&");
sbQueryString.Append("access_code=");
sbQueryString.Append("AVQJ68DL46BW00JQWB");
sbQueryString.Append("&");
sbQueryString.Append("Command=");
sbQueryString.Append("cancelOrder");
sbQueryString.Append("&");
sbQueryString.Append("request_type=XML&response_type=XML");
sbQueryString.Append("&");
sbQueryString.Append("version=1.1");
//Response.Redirect("../ccAvenue/ccavAPIHandler.aspx?" + sbQueryString.ToString(), false);
//string url = "https://logintest.ccavenue.com/apis/servlet/DoWebTrans";
string url = "https://180.179.175.17/apis/servlet/DoWebTrans";
// Create a request using a URL that can receive a post.
WebRequest request = WebRequest.Create(url);
// Set the Method property of the request to POST.
request.Method = "POST";
// Create POST data and convert it to a byte array.
string postData = sbQueryString.ToString();
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
// Set the ContentType property of the WebRequest.
request.ContentType = "application/x-www-form-urlencoded";
// Set the ContentLength property of the WebRequest.
request.ContentLength = byteArray.Length;
// Get the request stream.
Stream dataStream = request.GetRequestStream();
// Write the data to the request stream.
dataStream.Write(byteArray, 0, byteArray.Length);
// Close the Stream object.
dataStream.Close();
// Get the response.
WebResponse response = request.GetResponse();
// Display the status.
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
// Get the stream containing content returned by the server.
dataStream = response.GetResponseStream();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(dataStream);
// Read the content.
string responseFromServer = reader.ReadToEnd();
// Display the content.
Console.WriteLine(responseFromServer);
// Clean up the streams.
reader.Close();
dataStream.Close();
response.Close();
您可以尝试使用以下方法简化代码:
我收到503错误-服务不可用。此错误与您发布请求的方式无关。我尝试了此操作,但仍然收到错误:C#System.Net.WebException:基础连接已关闭:发送服务器上发生意外错误。然后,服务器可能有问题。如果发送了一些无效参数,服务器可能会关闭连接。您可能需要查阅正在使用的远程服务的文档。客户端代码很好。
"https://logintest.ccavenue.com/apis/servlet/DoWebTrans";
StringBuilder sbQueryString = new StringBuilder();
CCACrypto ccaCrypto = new CCACrypto();
string workingKey = "14A246E9D4341159638AC8EB776F3BE6";
//put in the 32bit alpha numeric key in the quotes provided here
sbQueryString.Append("enc_request=");
sbQueryString.Append(ccaCrypto.Encrypt(GenerateOrderXml(appointmentId), workingKey));
sbQueryString.Append("&");
sbQueryString.Append("access_code=");
sbQueryString.Append("AVQJ68DL46BW00JQWB");
sbQueryString.Append("&");
sbQueryString.Append("Command=");
sbQueryString.Append("cancelOrder");
sbQueryString.Append("&");
sbQueryString.Append("request_type=XML&response_type=XML");
sbQueryString.Append("&");
sbQueryString.Append("version=1.1");
//Response.Redirect("../ccAvenue/ccavAPIHandler.aspx?" + sbQueryString.ToString(), false);
//string url = "https://logintest.ccavenue.com/apis/servlet/DoWebTrans";
string url = "https://180.179.175.17/apis/servlet/DoWebTrans";
// Create a request using a URL that can receive a post.
WebRequest request = WebRequest.Create(url);
// Set the Method property of the request to POST.
request.Method = "POST";
// Create POST data and convert it to a byte array.
string postData = sbQueryString.ToString();
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
// Set the ContentType property of the WebRequest.
request.ContentType = "application/x-www-form-urlencoded";
// Set the ContentLength property of the WebRequest.
request.ContentLength = byteArray.Length;
// Get the request stream.
Stream dataStream = request.GetRequestStream();
// Write the data to the request stream.
dataStream.Write(byteArray, 0, byteArray.Length);
// Close the Stream object.
dataStream.Close();
// Get the response.
WebResponse response = request.GetResponse();
// Display the status.
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
// Get the stream containing content returned by the server.
dataStream = response.GetResponseStream();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(dataStream);
// Read the content.
string responseFromServer = reader.ReadToEnd();
// Display the content.
Console.WriteLine(responseFromServer);
// Clean up the streams.
reader.Close();
dataStream.Close();
response.Close();
using (var client = new WebClient())
{
var data = new NameValueCollection
{
{ "enc_request", "63957FB55DD6E7B968A7588763E08B240878046EF2F520C44BBC63FB9CCE726209A4734877F5904445591304ABB2F5E598B951E39EAFB9A24584B00590ADB077ADE5E8C444EAC5A250B1EA96F68D22E44EA2515401C2CD753DBA91BD0E7DFE7341BE1E7B7550" },
{ "access_code", "8JXENNSSBEZCU8KQ" },
{ "command", "confirmOrder" },
{ "request_type", "XML" },
{ "response_type", "XML" },
{ "version", "1.1" },
};
var url = "https://logintest.ccavenue.com/apis/servlet/DoWebTrans";
byte[] result = client.UploadValues(url, data);
}