Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
Xamarin在状态代码为500时获取API结果_Xamarin_Xamarin.forms - Fatal编程技术网

Xamarin在状态代码为500时获取API结果

Xamarin在状态代码为500时获取API结果,xamarin,xamarin.forms,Xamarin,Xamarin.forms,在我的xamarin.forms应用程序中,我使用了一个简单的web API。API方法是POST。我正在传递一些凭据,如果传递的参数中存在有效数据,API将获取这些凭据 当传递的参数有效时,结果数据如下所示 { "results": { "break_id": 40, "person_id": 48, }, "success": true } {

在我的xamarin.forms应用程序中,我使用了一个简单的web API。API方法是
POST
。我正在传递一些凭据,如果传递的参数中存在有效数据,API将获取这些凭据

当传递的参数有效时,结果数据如下所示

{
    "results": {
        "break_id": 40,
        "person_id": 48,     
    },
    "success": true
}
{
    "message": "Please enter correct details.",
    "success": false
}
当参数无效时,API结果如下所示

{
    "results": {
        "break_id": 40,
        "person_id": 48,     
    },
    "success": true
}
{
    "message": "Please enter correct details.",
    "success": false
}
当我们在Postman上检查这些API时,成功的结果显示状态代码200。失败时,结果将显示为状态代码
500

我正在像这样解析API

 private HttpRequestMessage req;    
    var jsonObtained = "";
    string stringObtained = "";
    var client = new HttpClient { BaseAddress = baseAddress };
    T resultObject;                            
 
   try
    {
             req = new HttpRequestMessage(HttpMethod.Post, apiurl);
             client.DefaultRequestHeaders.Authorization =
             new AuthenticationHeaderValue("bearer", Settings.AuthToken);
             req.Content = new StringContent(postdata, Encoding.UTF8, "application/json");
             Task<string> task = Task.Run(async () => await Threading(client, req));
             task.Wait();
             stringObtained = task.Result;
             jsonObtained = Regex.Unescape(stringObtained);  
    
             var resultJSON = jsonObtained;
    
             resultObject = JsonConvert.DeserializeObject<T>(resultJSON);
    }
    
    Catch(Exception ex)
    {
        
    }
          

我怎样才能解决这个问题?对于失败的结果,状态代码是否也必须为
200
?非常感谢您的帮助。

此错误与xamarin无关,请参阅参考资料


我建议在您的httpClient创建中添加一个断点,并确认您向其发出请求的基址。如果您有权访问正在使用的API,请确保请求也到达服务器端的处理程序,并调试内部发生的情况

Hi,谢谢。消息参数是正确的。这就是我们所期望的。但是状态代码改变了。我认为即使状态代码为500No,我们也可以得到message参数。服务器返回一个内部错误,因此他无法返回预期的对象。它如何返回“message”和“success”?如果可以从代码中获取json,请将代码放入catch语句中。