C# 当我尝试在HttpClient中使用Json时,应用程序进入中断模式
我试图将我的应用程序中的数据从注册页面发布到web服务(使用requestb.in进行测试),但是当我尝试使用以下代码时,它会将应用程序置于中断模式,然后当我使用中断点查找问题所在时,它只会显示“等待PostRequest(…)”是导致问题的原因。 我已经在Portable项目和android项目上安装了System.Net.HttpC# 当我尝试在HttpClient中使用Json时,应用程序进入中断模式,c#,json,xamarin,httpclient,C#,Json,Xamarin,Httpclient,我试图将我的应用程序中的数据从注册页面发布到web服务(使用requestb.in进行测试),但是当我尝试使用以下代码时,它会将应用程序置于中断模式,然后当我使用中断点查找问题所在时,它只会显示“等待PostRequest(…)”是导致问题的原因。 我已经在Portable项目和android项目上安装了System.Net.Http public async Task<JObject> PostAsync(string uri, string data) { var htt
public async Task<JObject> PostAsync(string uri, string data)
{
var httpClient = new HttpClient();
var response = await httpClient.PostAsync(uri, new StringContent(data));
response.EnsureSuccessStatusCode();
string content = await response.Content.ReadAsStringAsync();
return await Task.Run(() => JObject.Parse(content));
}
Username.Text是XAML类中输入字段中的字符串,这将重现我的问题这里是我用来将数据发布到API的通用方法 正如上面指出的,它是,我已经在下面的代码中包含了它 HttpClient-Post
static readonly Lazy _clientHolder=new Lazy(()=>CreateHttpClient(TimeSpan.FromSeconds(60));
静态HttpClient客户端=>\u clientHolder.Value;
受保护的静态异步任务PostObjectToAPI(字符串APIRL,T数据)
{
var stringPayload=await Task.Run(()=>JsonConvert.SerializeObject(数据)).ConfigureAwait(false);
var httpContent=newstringcontent(stringPayload,Encoding.UTF8,“application/json”);
尝试
{
返回wait Client.PostAsync(apirl,httpContent).configurewait(false);
}
捕获(例外e)
{
Debug.WriteLine(e.Message);
返回null;
}
}
静态HttpClient CreateHttpClient(TimeSpan超时)
{
var client=新的HttpClient();
client.Timeout=超时;
client.DefaultRequestHeaders.AcceptEncoding.Add(新的StringWithQualityHeaderValue(“gzip”);
返回客户;
}
此片段取自我的BaseHttpClientService.cs
,我将其复制/粘贴到需要使用HttpClient
的任何应用程序中:
使用UWP对应用程序进行故障排除,以便查看它引发的异常类型。还可以尝试降级这两个Nuget包 仅供参考:。您在不到24小时前提出了同样的问题。不要多次发布同一个问题。@Jason我已经编辑过,最后一个问题没有人回答one@Jason代码是不同的,我做了它,以便它可以复制,只是问题是sameI已经重新打开-请删除您的其他问题,以防止任何混淆
async void NextBtnClicked(object sender, EventArgs)
{
await PostAsync("https://requestb.in/MYURL", Username.Text);
}