c# - c# HttpWebResponse 只适用于意大利 IP
问题描述
我想用 HttpWebRequest 调用 API,但只用意大利 IP 返回“OK”。与其他国家的 IP 返回“未实施”。我可以做些什么来处理所有国家的 IP?
private void MakeRequests()
{
HttpWebResponse response;
if (Request_onlineplus_mofid_com(out response))
{
using (Stream responseStream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
WriteToLog(reader.ReadToEnd());
label1.Text = response.StatusCode.ToString();
}
response.Close();
}
}
private bool Request_onlineplus_mofid_com(out HttpWebResponse response)
{
response = null;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://******.com/Customer/SendOrder");
request.UserAgent = "Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0";
request.Accept = "*/*";
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "en-US,en;q=0.5");
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br");
request.Headers.Add("X-Requested-With", @"XMLHttpRequest");
request.ContentType = "application/json";
request.Headers.Add("Origin", @"https://********.com");
request.KeepAlive = true;
request.Referer = "https://*******.com/Home/Default/page-1";
request.Headers.Set(HttpRequestHeader.Cookie, @"GuidedTourVersion=1; SiteVersion=3.7.4; _ga=GA1.2.1641357646.1586548762; _gid=GA1.2.898069884.1586548762; crisp-client%2Fsession%2Fe95056ad-2681-452d-976d-0c2a304165c9=session_747ab3aa-5e67-4895-bf1f-1ebc4228674d; Token=cffb7683-749f-4778-95f1-445f30844f24; silverse=caiqiybzlgduowvc4bfpaip0; .ASPXAUTH=8BB49592D10170B8AC065895D255222E76D2D7D5B7F60DFE945F4E401568D8C0261BA121CA9D99FC95121378A7F0F7F94E11557B8D127A58D822802D70700CFB4872C885A45F969A514731895DE691040C961713A44634ADF984900888BA8F8ADF7AF0FD7BA1A8BAD1F5F5AABD68A3CD611686198DD4AB5BBF0D3200618169D8");
request.SendChunked = true;
request.TransferEncoding = "Trailers";
request.Method = "POST";
request.ServicePoint.Expect100Continue = false;
string body = @"{""IsSymbolCautionAgreement"":false,""CautionAgreementSelected"":false,""IsSymbolSepahAgreement"":false,""SepahAgreementSelected"":false,""orderCount"":1,""orderPrice"":52570,""FinancialProviderId"":1,""minimumQuantity"":"""",""maxShow"":0,""orderId"":0,""isin"":""IRO1GARN0001"",""orderSide"":65,""orderValidity"":74,""orderValiditydate"":null,""shortSellIsEnabled"":false,""shortSellIncentivePercent"":0}";
byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body);
request.ContentLength = postBytes.Length;
Stream stream = request.GetRequestStream();
stream.Write(postBytes, 0, postBytes.Length);
stream.Close();
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException e)
{
if (e.Status == WebExceptionStatus.ProtocolError) response = (HttpWebResponse)e.Response;
else return false;
}
catch (Exception)
{
if (response != null) response.Close();
return false;
}
return true;
}
以上代码是fiddler生成的。这个带有restsharp的api总是retuen 401。但在邮递员retuen 200中。
解决方案
推荐阅读
- c# - C#、WinForms 和应用程序图标
- javascript - 错误的 x 轴最小值最大值 Highcharts
- python - 如何使用 matplotlib 中的 mpatches.Patch 将自定义标签添加到条形图中
- google-apps-script - 如何在谷歌应用程序脚本上更改日志消息的语言
- ios - Apple Enterprise 计划,用于为我的客户分发组织的员工应用程序
- json - 使用 curl 时出现 Github API 错误“解析 JSON 的问题”,但与 Postman 一起工作正常
- javascript - 当按下另一个可触摸的不透明度时,一个可触摸的不透明度不会按下
- python - 将值插入同一个列表而不是新的
- python - QSqlTableModel数据编辑(子类化)问题
- fullcalendar - FullCalendar - 在 navLinkDayClick 中获取当前资源