呼叫http框架 .net framework 4.5.1 呼叫demo框架 .net framework 4.5.1 和 4.5.2 都試過 還是藍屏
用soapUI 和posmain 工具測驗 沒有藍屏情況,大佬們有沒有遇到過這種情況 幫忙看一下下 謝謝您們啦
呼叫代碼如下: 代碼一:
//Logger.Net.Info($"[{Prefix}] [{name}] [{i}] 發送內容:{sendAsJson}");
byte[] byteArray = encoding.GetBytes(sendAsJson);
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri($"{string.Format("http://10.1.13.103:11100/Pay/")}{req.service}"));
webReq.Method = "POST";
webReq.ContentType = "application/x-www-form-urlencoded;";
webReq.Timeout = 60 * 1000 * 2;
var watch = Stopwatch.StartNew();
webReq.ContentLength = byteArray.Length;
Stream newStream = webReq.GetRequestStream();
newStream.Write(byteArray, 0, byteArray.Length);
newStream.Close();
HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream());
ret = sr.ReadToEnd();
sr.Close();
response.Close();
newStream.Close();
var time = watch.ElapsedMilliseconds;
//Logger.Net.Info($"[{Prefix}] [{name}] [{i}] 耗時:{time}毫秒 接收內容:{ret}");
var res = JsonConvert.DeserializeObject<TRes>(ret);
return res;
代碼二 : using (var client = new HttpClient())
{
client.Timeout = new TimeSpan(0, 2, 0);
try
{
dictionQuery = req.GetParams();
var watch = Stopwatch.StartNew();
var kvcontent = string.Join("&", dictionQuery.Select(p => $"{p.Key}={HttpUtility.UrlEncode(p.Value)}"));
//Logger.Net.Info($"[{Prefix}] [{name}] [{i}] 發送組裝內容:{kvcontent}");
HttpContent formContent= new FormUrlEncodedContent(dictionQuery);
Url = new Uri($"{string.Format("http://10.1.13.103:11100/Pay/")}{req.service}");
var task = client.PostAsync(Url, formContent);
var response = task.Result;
var text = response.Content.ReadAsStringAsync().Result;
watch.Stop();
var time = watch.ElapsedMilliseconds;
string logres = text;
//Logger.Net.Info($"[{Prefix}] [{name}] [{i}] 耗時:{time}毫秒 接收內容:{logres}");
if (response.StatusCode != HttpStatusCode.OK)
{
return new TRes
{
Code = -4,
Msg = $"{(int)response.StatusCode}:{response.StatusCode}"
};
}
if (string.IsNullOrWhiteSpace(text))
{
return new TRes
{
Code = -4,
Msg = $"介面[{name}]網關回傳內容例外!null"
};
}
var res = JsonConvert.DeserializeObject<TRes>(text);
return res;
}
catch (AggregateException ex)
{
var exceptionDescription = PrintAggregateException(ex, out var mainException);
//Logger.Net.Error($"[{Prefix}] [{name}] [{i}] 例外內容:{exceptionDescription}");
return new TRes
{
Code = -4,
Msg = BuilNiceErrorMsg(mainException)
};
}
catch (Exception ex)
{
//Logger.Net.Error($"[{Prefix}] [{name}] [{i}] 例外內容:{ex.Message}\r\n{ex.StackTrace}");
return new TRes
{
Code = -2,
Msg = BuilNiceErrorMsg(ex.Message)
};
}
}
大佬們幫忙看一下下
uj5u.com熱心網友回復:
別沉,大佬們求解答uj5u.com熱心網友回復:
大佬們幫忙看下下 謝謝你們啦uj5u.com熱心網友回復:
看不出問題。建議做減法。我們不認為,是什么http問題。我們認為是其他的地方的問題
所以我的建議是做減法,單獨寫個控制臺,這個控制臺啥都不寫,就只純粹做http部分,如果這個控制臺還報錯在來問
如果控制臺不報錯,檢查你那些多余的部分和跟你程式的其他互動部分
uj5u.com熱心網友回復:
我總覺得,藍屏和http沒什么關系。應該還是和泄漏記憶體之類的有關系。
你試試,只是最簡單的helloworld 介面,呼叫看看有沒有問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/80443.html
標籤:C#
上一篇:.net mvc的控制器內帶引數跳轉無效 頁面不報錯也無反應
下一篇:.NET面試題
