美文网首页iOS bug修复程序员首页投稿(暂停使用,暂停投稿)
AFN网络请求时,java后台获取不到parameter的解决方

AFN网络请求时,java后台获取不到parameter的解决方

作者: 以技术之名 | 来源:发表于2016-04-02 13:46 被阅读2902次
viwik_815289924.jpg

原来公司项目进行网络请求的时候用的是ASI,笔者最近将公司项目的网络请求方式换成了AFN,后台是Java写的,但是在更换的过程中出现问题了。

笔者用CocoaPod导入AFN3.0,用的是post第一种请求方式,代码如下

   AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.requestSerializer.timeoutInterval = 10;//网络请求超时为5s
    manager.responseSerializer = [AFJSONResponseSerializer serializer];
    NSDictionary *parameters = @{@"time":@"2016-04-01",@"token":@"sfwefwefwehbfwk"};
    
    // 结果返回
    [manager POST:@"http://test.52.com:8004/Clientuser/app_token?" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
        
    } progress:^(NSProgress * _Nonnull uploadProgress) {
        
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        
    }];

在测试的过程中,只能访问到http://test.52.com:8004/Clientuser/app_token?,后台无法获取到timetoken两个参数。在解决问题的过程中,发现有其他的开发者在使用AFN3.0的时候也遇到了这个问题,采取的方式是将post请求更换成下面的方式

[manager POST:@"http://test.52.com:8004/Clientuser/app_token?" parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
    
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    
}];

这样就完美的解决了参数获取不到的问题。

第一种post方式是上传文件的请求方式,第二种是普通的请求数据的方式,笔者原本认为第一种请求方式只是增加了上传功能不会有其他的影响,所以二次封装的时候就用第一种封的,问题就出现了,希望大家不要和笔者犯类似的错误。

至于为什么会出现这样的问题,如果有读者知道请告知笔者,笔者搞清楚后会补充说明。

最后贴上AFN3.0.4的使用方式iOS开发之AFNetworking 3.0.4使用

相关文章

网友评论

  • 什么都为null:解决问题了 谢谢! 所以知道了原因了吗:smile:
  • Dove_iOS:沉了.......

    // 结果返回
    [manager POST:@"http://test.52.com:8004/Clientuser/app_token?&quot; parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {

    } progress:^(NSProgress * _Nonnull uploadProgress) {

    } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {

    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

    }];
    第一种post方式是上传文件的请求方式,第二种是普通的请求数据的方式,笔者原本认为第一种请求方式只是增加了上传功能不会有其他的影响,所以二次封装的时候就用第一种封的,问题就出现了,希望大家不要和笔者犯类似的错误。

    至于为什么会出现这样的问题,如果有读者知道请告知笔者,笔者搞清楚后会补充说明。
    有人知道为什么吗?

  • a0aec0c55409: _manager.httpManager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html",@"text/plain", nil]; 在初始化的时候加上这句话.
  • 我的时代我开创:楼主在嘛?求帮助啊,哎,get请求可以得到参数,post就得不到参数,好几天,还没弄好,具体不知道哪里出错了。
  • 我的时代我开创:楼主在嘛? 我也出现了这种后台没收到数据的情况,但是我用了你的方法并没有成功,还有什么方法吗?
  • 资料库:你的解决方式是避过的错误啊,你那个只是请求正常数据时可以用你的方法,现在要上传图片该怎么解决楼主可有解决办法??
    sock:@资料库 我post 上传图片也接受不到参数 有解决方法吗 多谢了.
    资料库:能加一下我的微信吗?我已经申请了
    以技术之名:@e90965df308c 上传图片时好像没有遇到这个问题,参数可以获取到,可以正常上传

本文标题:AFN网络请求时,java后台获取不到parameter的解决方

本文链接:https://www.haomeiwen.com/subject/kqnylttx.html