Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当我尝试在HttpClient中使用Json时,应用程序进入中断模式_C#_Json_Xamarin_Httpclient - Fatal编程技术网

C# 当我尝试在HttpClient中使用Json时,应用程序进入中断模式

C# 当我尝试在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

我试图将我的应用程序中的数据从注册页面发布到web服务(使用requestb.in进行测试),但是当我尝试使用以下代码时,它会将应用程序置于中断模式,然后当我使用中断点查找问题所在时,它只会显示“等待PostRequest(…)”是导致问题的原因。 我已经在Portable项目和android项目上安装了System.Net.Http

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);
}