当前位置: 移动技术网 > IT编程>移动开发>IOS > IOS 出现问题POST网络请求状态code:500的解决方法

IOS 出现问题POST网络请求状态code:500的解决方法

2019年07月24日  | 移动技术网IT编程  | 我要评论

hpu盘格式化工具,响水县幼儿园,临时保姆2

ios 出现问题post网络请求状态code:500的解决方法

前言:

ios 10 用 [nsurlsession uploadtaskwithrequest:request fromdata:jsondata completionhandler:^(nsdata * _nullable data, nsurlresponse * _nullable response, nserror * _nullable error){}];

进行post网络请求时 出现 500 错误

出现500 的错误 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器的程序码出错时出现。ios http请求的常见状态码总结

虽然出现这种原因是服务器的错误,我觉得服务器解析请求数据也有可能出现这个错误状态500,所以我从客服端入手。
打印返回时的 response 里面的值为

:<nshttpurlresponse: 0x17003a900> { url: 你的url地址 } { status code: 500, 

headers {
 "cache-control" = private
 "content-length" = 3306;
 "content-type" = "text/html; charset=utf-8";
 date = "sun, 09 oct 2016 07:45:13 gmt";
 server = "microsoft-iis/7.5";
 "x-aspnet-version" = "4.0.30319";
 "x-powered-by" = "asp.net";
} }

从中我们可以看到,返回类型不是json而是text/html类型

我们知道,在post请求是需要设置请求头数据类型,以上出错的请求我是这样设置的

[request setvalue:@"application/x-www-form-urlencoded" forhttpheaderfield:@"content-type"]; 

这个设置方法是我从提交图片的网络请求方法拷贝过来的,即@"application/x-www-form-urlencoded"这个类型是提交图片的类型设置(提交图片时把提交图片参数转成nsdata然后再转成base64的nsdata提交)。而我的本次请求是提交json字符串的nsdata类型。所以"content-type"的值设置成”application/json“即可。详解http请求中content-type讲解以及在spring mvc中的应用

我的解决方法是重新设置 如下:

[request setvalue:@"application/json" forhttpheaderfield:@"content-type"]; 

请求 response 大家可以和上面的做对比。

<nshttpurlresponse: 0x17403fe60> { url: 你的url地址 } { status code: 200, headers {
 "cache-control" = private;
 "content-length" = 75;
 "content-type" = "application/json; charset=utf-8";
 date = "sun, 09 oct 2016 07:56:16 gmt";
 server = "microsoft-iis/7.5";
 "x-aspnet-version" = "4.0.30319";
 "x-aspnetmvc-version" = "4.0";
 "x-powered-by" = "asp.net";
} } 

现在的  status code: 200, 解决了 500 错误的问题。出现这个错误也有可能后台对数据的处理错误,或者后台返回的数据类型和前端设置需要返回的类型冲突等。还是得具体问题具体分析

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网