public void PrintLabel(string jsonParas ,string url)
{
//創建一個HTTP請求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
//Post請求方式
request.Method = "POST";
//內容型別
request.ContentType = "application/json";
//設定引數,并進行URL編碼
string paraUrlCoded = jsonParas;//System.Web.HttpUtility.UrlEncode(jsonParas);
byte[] payload;
//將Json字串轉化為位元組
payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
//設定請求的ContentLength
request.ContentLength = payload.Length;
//發送請求,獲得請求流
Stream writer;
try
{
writer = request.GetRequestStream();//獲取用于寫入請求資料的Stream物件
}
catch (Exception ex)
{
writer = null;
Console.Write("連接服務器失敗!");
MessageBox.Show(ex.Message, "系統提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
//將請求引數寫入流
writer.Write(payload, 0, payload.Length);
writer.Close();//關閉請求流
// String strValue = "";//strValue為http回應所回傳的字符流
HttpWebResponse response;
try
{
//獲得回應流
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
response = ex.Response as HttpWebResponse;
}
Stream s = response.GetResponseStream();
// Stream postData = Request.InputStream;
StreamReader sRead = new StreamReader(s);
string postContent = sRead.ReadToEnd();
sRead.Close();
}
這個放在在 web專案里面能正常運行,訪問的是同一個URL,postman也能正常運行,但是我把這個代碼放到winform專案里面,就提示無法鏈接到遠程服務器,具體提示是:由于目標計算機積極拒絕,無法鏈接。
后來我用Fidder 準備看看鏈接發出去沒有,結果我打開Fidder他又可以連接了,我看了下代理,Fidder打開的時候開啟了一個代理:127.0.0.1:8888 這樣就能連接,關閉代理又不能連接。同一臺電腦 web專案和postman都能正常訪問,就web專案不行,這是什么問題?怎么解決
uj5u.com熱心網友回復:
我猜,服務端反爬措施設定了UA驗證,Fidder轉發時候可能對請求進行了修改,增加了UA.你試試吧postman匯出來的代碼運行試試.(或者自己對請求頭進行修改,增加UA)
uj5u.com熱心網友回復:
你說的UA 是UserAgent 嗎,我把他按照postman的設定了 還是不行
uj5u.com熱心網友回復:
上面是我描述有問題,和設定代理沒有太大關系,我設定代理關閉Fidder也是無法訪問的,必須開啟Fidder才行uj5u.com熱心網友回復:
netstat 看一下埠占用,防火墻開放程式訪問或者關了。uj5u.com熱心網友回復:
額,要不你發下url我們試試.....
uj5u.com熱心網友回復:
額,要不你發下url我們試試.....
不行
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/195671.html
標籤:C#
