簡體   English   中英

C# - HTTPWebRequest沒有返回任何內容

[英]C# - HTTPWebRequest not returning anything

所以沒有提琴手打開,我的代碼似乎沒有做任何事情! 但隨着它打開,它的工作正常嗎?! 什么?

HttpWebRequest init = (HttpWebRequest)WebRequest.Create("https://accounts.spotify.com/en/login?continue=https:%2F%2Fwww.spotify.com%2Fus%2Faccount%2Foverview%2F");
init.Method = "GET";
init.UserAgent = "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36";
init.Timeout = 8000;
HttpWebResponse resp1 = (HttpWebResponse)init.GetResponse();

線程(在我的情況下是ThreadPool線程),只是凍結,而不是結束,只會因為無法連接而凍結,而try catch甚至看起來都不起作用。

如果我將小提琴設置上的端口更改為8888以外的任何其他內容並且讓Fiddler打開,它會再次開始凍結,這意味着它以某種方式鏈接到8888。 但它根本沒有在我的代碼中引用。


固定!
發現它是由於沒有關閉造成的! resp1.close() 感謝大家!

這是正確的,你在你的代碼中寫的。 嘗試調試此代碼並查看您獲得的響應,注意responseBodyHtmlResult

HttpWebRequest init = (HttpWebRequest)WebRequest.Create("https://accounts.spotify.com/en/login?continue=https:%2F%2Fwww.spotify.com%2Fus%2Faccount%2Foverview%2F");
init.Method = "GET";
init.UserAgent = "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36";
init.Timeout = 8000;
HttpWebResponse resp1 = (HttpWebResponse)init.GetResponse();
HttpStatusCode sc = resp1.StatusCode;
String sd = resp1.StatusDescription;
string HtmlResult = "";
string responseBody = "";
using (System.IO.Stream rspStm = resp1.GetResponseStream())
{
    using (System.IO.StreamReader reader = new System.IO.StreamReader(rspStm))
    {
        HtmlResult = HtmlResult +
                "Response Description: " + resp1.StatusDescription;
        HtmlResult = HtmlResult +
                "Response Status Code: " + resp1.StatusCode;
        HtmlResult = HtmlResult + "\r\n\r\n";
        responseBody = reader.ReadToEnd();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM