Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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# Xamarin HTTPClient突然无法获取/发布_C#_.net_Xamarin_Uwp_Dotnet Httpclient - Fatal编程技术网

C# Xamarin HTTPClient突然无法获取/发布

C# Xamarin HTTPClient突然无法获取/发布,c#,.net,xamarin,uwp,dotnet-httpclient,C#,.net,Xamarin,Uwp,Dotnet Httpclient,长期潜伏者,第一次询问者 所以我有一些代码在很长很长一段时间内一直运行良好(它是核心功能,所以我知道它很好)。我最近格式化了我的电脑,可以理解,随着时间的推移,它重置了我所有的自定义配置。现在,我的HTTPClient代码突然无法获取或发布,除非我破坏了异步功能,甚至破坏了其他功能。我让它运行,客户端最终超时 下面的hClient.GetStringAsync()和hClient.PostAsync()行中的代码正在消亡——正如我提到的,它已经好了将近2年,只是突然决定按照这种格式消亡。感谢大家

长期潜伏者,第一次询问者

所以我有一些代码在很长很长一段时间内一直运行良好(它是核心功能,所以我知道它很好)。我最近格式化了我的电脑,可以理解,随着时间的推移,它重置了我所有的自定义配置。现在,我的HTTPClient代码突然无法获取或发布,除非我破坏了异步功能,甚至破坏了其他功能。我让它运行,客户端最终超时

下面的
hClient.GetStringAsync()
hClient.PostAsync()
行中的代码正在消亡——正如我提到的,它已经好了将近2年,只是突然决定按照这种格式消亡。感谢大家的帮助

背景:这是一个Xamarin PCL项目,针对所有平台-目前针对UWP进行测试。在VS2015和VS2017上都有相同的问题。以前使用的是VS2015

有关守则:

public async Task<string> Getter(string uriToPass, string propertyToParse = "", string parent = "", int index = 0)
{
    var uri = new Uri(uriToPass);
    var response = await hClient.GetStringAsync(uri);
    string valToReturn = propertyToParse == "" ? response : JsonVal(response, propertyToParse, parent);
    dbg(propertyToParse + ": " + valToReturn);
    return valToReturn;
}

public async Task<string> Poster(string uriToPass, Dictionary<string, string> valsToPass, string propertyToParse = "", string parent = "", int index = 0)
{
    var response = await hClient.PostAsync(uriToPass, new FormUrlEncodedContent(valsToPass)).ConfigureAwait(false);
    string valToReturn;
    if (propertyToParse == "")
    {
        valToReturn = await response.Content.ReadAsStringAsync();
    }
    else
    {
        valToReturn = JsonVal(response.Content.ReadAsStringAsync().ToString(), propertyToParse, parent);
    }
    dbg(propertyToParse + ": " + valToReturn);
    return valToReturn;
}
所以我现在使用了
configurewait(false)用于my
Getter
函数,HTTP调用现在已正确执行。然而,从我上面的第一行
authToken
response
这一行仍然没有进展


EDIT:事实证明我的代码中毕竟有一个拦截器-我的一个顶级函数依赖于
this.VARIABLE=sM.Getter().Result()
。删除它最终解决了我的问题。谢谢大家的帮助
结果表明,我的代码中毕竟有一个拦截器——我的一个顶级函数依赖于
this.VARIABLE=sM.Getter().Result()。删除它最终解决了我的问题。谢谢大家的帮助

“死”是什么意思。您得到的响应消息和响应状态代码是什么?例外情况是什么?你试过fiddler吗?你如何调用这些方法?显示代码。Jinish:就像在中一样,它只是锁定了-查看我的探查器会向我显示正确的URI已被传递并正在被处理。没有异常或响应消息/代码-代码只是挂起。我的分析器也没有显示在那一行之后进行的任何进一步的调用Ben:看看它是否真的在调用URI?尚未编辑大卫:编辑我的帖子仍然习惯于这样,为上面的格式道歉-没有意识到它不会在评论中分割行
this.authToken = await this.sM.Getter(this.MethodBuilder("auth.gettoken"), "token");
string response = await this.sM.Poster(this.MethodBuilder("auth.getMobileSession", true, vP, true), vP);