Tag: httpclient

奇怪的HttpClient结果

当试图从Hitbox API获取数据时,我得到一个奇怪的结果。 对于一个API的命令,它每次都会发生,有时只发生另一个。 结果或多或少那样(这是我得到的最后一个结果): \ u001f \ B \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ U0003콋w8sΜmu〜SNT&Ng6C Ͷ$ z%9igf [( \u0005 \u000f (: 6 \ u000f \bP C\ u0015 \n \u007f V \u007f d h2_&nj,呎\ u00177 \ u0019 SKP | ^ w9w2 \u06054Ƿ&\u0015ƛXo\ u0014 [二\ u0011onVP \ u0005e \ u000e […]

使用C#HttpClient api和postman测试之间的区别? 客户端调用适用于邮递员但不适用于C#httpClient getAsync

我正在测试一个rest APIpost,当我在Postman上试用它时效果很好。 但是,在某些情况下(与发布XML数据相关)如果我使用HttpClient API发布,我会收到以下错误: “无法从传输连接读取数据:远程主机强行关闭现有连接。” 但是相同的xml内容在Postman上工作正常,状态正常且响应正确。 任何人都知道使用C#HttpClient api和postman测试之间的区别是什么? 如何配置我的api调用以匹配邮递员的行为? 这里我附上了源代码和Postman截图 public void createLoan() { string baseCreateLoanUrl = @”https://serverhost/create?key=”; var strUCDExport = XDocument.Load(@”C:\CreateLoan_testcase.xml”); using (var client = new HttpClient()) { var content = new StringContent(strUCDExport.ToString(), Encoding.UTF8, Mediatype); string createLoanApi = string.Concat(baseCreateLoanUrl, APIKey); try { var response = client.PostAsync(createLoanApi, content).Result; } catch (Exception ex) { MessageBox.Show(“Error Happened […]

HttpClient HttpRequestException

我遇到了HttpClient的问题,我一直HttpRequestException occurred in mscorlib.dll 。 我已经从SVN下载了以前的工作版本,并且我一直得到相同的exception。 为什么我突然得到这个例外,即使我运行的代码已经运行好几周了? 现在我正在尝试使用这个简单的代码进行调试,但无论我做什么,我都会得到相同的exception HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Accept .Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue( “application/json”)); HttpResponseMessage response = await client.GetAsync(“http://api.themoviedb.org/3/movie/550?api_key=x”); return await response.Content.ReadAsStringAsync(); 我的innerException如下: The remote name could not be resolved: api.themoviedb.org System.Exception System.Net.WebException 我尝试的每个url都是一样的,它们都在我的浏览器中工作。 这是exception和堆栈跟踪: res “System.Net.Http.HttpRequestException: An error occurred while sending the request. —> System.Net.WebException: The remote name could not be […]

HttpClient PostAsync无效的post格式

我正在尝试使用HttpClient的PostAsync登录网站; 但总是失败,当我使用WireShark跟踪连接时,我发现它错误地发布了数据 码 var content = new FormUrlEncodedContent(new[] { new KeyValuePair(“value1”, data1), new KeyValuePair(“value2”, data2), new KeyValuePair(“value3”, data3) }); 要么 var content = new List<KeyValuePair> { new KeyValuePair(“value1”, data1), new KeyValuePair(“value2”, data2), new KeyValuePair(“value3”, data3) }; 用法 httpClient.PostAsync(postUri, content) 期望 value1=123456&value2=123456&value3=123456 现实 //It adds strange += which makes the post fail… value1=123456&value2+=123456&value3+=123456

Http MultipartFormDataContent

我被要求在C#中执行以下操作: /** * 1. Create a MultipartPostMethod * 2. Construct the web URL to connect to the SDP Server * 3. Add the filename to be attached as a parameter to the MultipartPostMethod with parameter name “filename” * 4. Execute the MultipartPostMethod * 5. Receive and process the response as required * / 我写了一些没有错误的代码,但是没有附加文件。 有人可以查看我的C#代码,看看我是否错误地编写了代码? […]

如何在Windows Phone 8.1 / Windows 8.1中为http客户端请求操作设置超时

如何将Timeout属性设置为Windows.Web.Http.HttpClient操作。 我使用的代码示例如下。 public HttpClient httpClient; public CancellationTokenSource cts; public void SendRequest(addressUri,postrequestbody) { HttpHelper.CreateHttpClient(ref httpClient); cts = new CancellationTokenSource(); HttpRequestMessage msg = new HttpRequestMessage(new HttpMethod(“POST”), new Uri(addressUri)); msg.Content = new HttpStringContent(postrequestbody); msg.Content.Headers.ContentType = new HttpMediaTypeHeaderValue(“application/json”); HttpResponseMessage response = await httpClient.SendRequestAsync(msg).AsTask(); if (response.StatusCode == HttpStatusCode.Ok) { } }

C# – HttpClient没有发送任何cookie

我正在开发两个网站www.web1.com和www.web2.com。 在web1中,我保存了一个http cookie,如下所示 HttpCookie AuthCookie = new HttpCookie(AppConstants.Cookie.AUTH_COOKIE); AuthCookie.Path = “/”; AuthCookie.Value = “value1”; Response.Cookies.Add(AuthCookie); 现在我想要的是在第二个网站即web2中读取这个cookie。 我正在尝试使用HttpClient读取它,如下所示 HttpClientHandler handler = new HttpClientHandler(); handler.CookieContainer = new CookieContainer(); HttpClient client = new HttpClient(handler); response = client.GetAsync(“http://www.web1.com”).Result; var cookies = cookies.GetCookies(new Uri(“http://www.web1.com”)); 这不会返回任何cookie,也可以通过Fiddler进行检查。 但是,如果我直接打开www.web1.com并检查提琴手,那么它会发送cookie。 请查看我缺少的内容,以便不从httpclient返回cookie。 谢谢, SB

可移植类库上的WebProxy

我正在构建一个可移植类库项目。 使用HttpClient类(从NuGet包安装)。 现在。 我想使用Proxy通过将HttpClientHandler传递给它构造函数来创建HttpClient(HttpClientHandler有一个Proxy属性,我们将为它分配一个WebProxy实例)。 问题是Portable Class Library不支持WebProxy类。 它只有IWebProxy interace。 我搜索了谷歌,NuGet包,但我找不到任何解决方案。 请告诉我。 我该如何解决这个问题(或者使用代理来制作HttpClient的其他方法)

HttpClient.GetAsync(url)将504返回到在浏览器中工作的URL

我可以手动访问URL,但在使用.Net时会超时。 我创建了一个按钮,可以更轻松地复制场景。 有时我得到一个exception,说任务被取消,否则这个代码片段后面有一个504错误: private async void Button_Click_1(object sender, RoutedEventArgs e) { var url = “http://api.dailyfive.tv/index.php?task=REQUEST_REGIONS&session=TestWin8&app=4&model=TestWin8&ver=1.0.0.7&os=8&region=”; var output = await ReadHttpResponse(url); } private async Task ReadHttpResponse(string url) { try { using (HttpClient client = new HttpClient()) { HttpResponseMessage response = await client.GetAsync(url); return await response.Content.ReadAsStringAsync(); } } catch (Exception ex) { } return null; } 结果如下: […]

在UWP(W10)中使用HttpClient发出POST请求

我正在使用Universal Windows Plataform制作应用程序,我想询问如何使用httpclient将数据(id = 1)发布到服务器。 我知道互联网上有一些教程,但其中许多是针对Windows 8.1而且不适用于10。