Xamarin HTTPClient突然没有GET / POSTing

时间:2017-03-08 13:25:07

标签: c# .net xamarin uwp dotnet-httpclient

长时间潜伏,第一次提问者

所以我得到了一些长期以来一直运行良好的代码(它的核心功能,所以我知道它很好)。我最近格式化了我的电脑,随着时间的推移可以理解地重置我的所有自定义配置。现在突然,我的HTTPClient代码根本没有GET或POST,除非我打破了Async功能 - 甚至打破了其他事情。我让它运行,客户端最终超时。

代码在下面的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;
}

调用上述两个函数的示例代码是:

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

所以我现在使用ConfigureAwait(false);作为我的Getter函数 - 现在正在调用HTTP调用。 然而它仍然没有从我上面的第一个authToken行进展到response

编辑:事实证明我的代码中有一个阻止程序 - 我的一个顶级函数依赖于this.VARIABLE = sM.Getter().Result()。删除最终修复我的问题。谢谢大家的帮助!

1 个答案:

答案 0 :(得分:0)

事实证明我的代码中有一个阻止程序 - 我的一个顶级函数依赖于this.VARIABLE = sM.Getter().Result();。删除最终修复我的问题。谢谢大家的帮助!