3 回答
TA贡献1846条经验 获得超7个赞
不记得 response.Dispose();
static async void WR(int msg)
{
Console.WriteLine(msg + " begin");
string url = "https://stackoverflow.com";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
var response = (HttpWebResponse)await Task.Factory.FromAsync<WebResponse>
(request.BeginGetResponse, request.EndGetResponse, null);
Console.WriteLine(msg + " status code: " + response.StatusCode);
Console.WriteLine(msg + " end");
response.Dispose();
}
TA贡献1835条经验 获得超7个赞
我已运行您的代码并获得如下输出:
0 begin
1 begin
2 begin
3 begin
4 begin
5 begin
6 begin
7 begin
8 begin
9 begin
0 status code: OK
0 end
5 status code: OK
5 end
8 status code: OK
8 end
4 status code: OK
4 end
3 status code: OK
3 end
2 status code: OK
2 end
6 status code: OK
6 end
1 status code: OK
1 end
7 status code: OK
7 end
9 status code: OK
9 end
当你按下回车键时,应用程序将因为Console.ReadLine();你的 main 方法而关闭。它等待程序直到从您的控制台获得输入。
TA贡献1815条经验 获得超10个赞
我会把它变成它自己的静态方法,它会返回一个字符串,这样你就可以看到发生了什么。我不会依赖任何类型的 xml 文件,除非它是从 API 调用返回的 XML。我在这里发帖,但如果你愿意,你可以得到。不确定您的设置在后端如何。核实:
public static string PostXMLDataCS()
{
bool debugging = false;
try
{
string iConnectAuth = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\">" +
"<soapenv:Header/>" +
"<soapenv:Body>" +
"<tem:Authenticate>" +
"<!--Optional:-->" +
"<tem:TenantID>TenantID</tem:TenantID>" +
"<!--Optional:-->" +
"<tem:Username>Username</tem:Username>" +
"<!--Optional:-->" +
"<tem:Password>password</tem:Password>" +
"</tem:Authenticate>" +
"</soapenv:Body>" +
"</soapenv:Envelope>";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.example.com/services/ByDesign/Inventory.svc");
byte[] bytes;
bytes = System.Text.Encoding.ASCII.GetBytes(iConnectAuth);
request.ContentType = "text/xml; charset=utf-8";
request.Accept = "gzip,deflate";
request.ContentLength = bytes.Length;
request.Method = "POST";
request.Headers.Add("SOAPAction", "http://tempuri.org/IInventory/Authenticate");
request.KeepAlive = true;
Stream requestStream = request.GetRequestStream();
requestStream.Write(bytes, 0, bytes.Length);
requestStream.Close();
HttpWebResponse response;
response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
Stream responseStream = response.GetResponseStream();
string responseStr = new StreamReader(responseStream).ReadToEnd();
response.Close();
//MessageBox.Show(responseStr);
return responseStr;
}
}
catch (Exception e)
{
if (debugging == true)
{
MessageBox.Show("There was a problem authenticating for the check inventory with iConnect. Error: " + e);
}
string messageSubject = "There was a problem authenticating for the check inventory with iConnect.";
string messageBody = "There was a problem authenticating for the check inventory with iConnect. Error: ";
string kiboSendEmail = string.Empty;
SendEmail sendEmail = new SendEmail();
return kiboSendEmail = sendEmail.SendEmailCS(messageSubject, messageBody, e);
}
return null;
}
- 3 回答
- 0 关注
- 525 浏览
添加回答
举报