iOS客户端 与JAVA 后台http通信
来源:互联网 发布:系统矩阵不可逆 编辑:程序博客网 时间:2024/05/30 04:25
ios 客户端和java 后台数据交互时一些注意点吧 设置的请求头信息,以及接收体可接受的类型,长度
// manager
AFHTTPSessionManager * manager = [AFHTTPSessionManagermanager];
// 设置请求头信息,不设置可能会出现数据交互失败
AFHTTPRequestSerializer * requestSer = [AFHTTPRequestSerializerserializer];
[requestSer setValue:@"application/json"forHTTPHeaderField:@"Content-Type"];
[manager setRequestSerializer:requestSer];
//设置返回体信息,eg:设置可接收的ContentType(如果不能确定,就置空 nil)
// 不设置可能会出现 3840(JSON text did not start with array or object and option to allow fragments not set.)
[manager setResponseSerializer:[AFHTTPResponseSerializerserializer]] ;
manager.responseSerializer.acceptableContentTypes =nil;
// manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil];
// 发起请求
[manager POST:pathparameters:nilprogress:nilsuccess:^(NSURLSessionDataTask *_Nonnull task, id _Nullable responseObject) {
if ([responseObjectisKindOfClass:[NSDataclass]]) {
NSString * res = [[NSStringalloc] initWithData:responseObjectencoding:NSUTF8StringEncoding];
NSLog(@"====【%@】", res);
complete(responseObject);
}
} failure:^(NSURLSessionDataTask *_Nullable task, NSError *_Nonnull error) {
NSLog(@"error.code = %ld userinfo = %@", (long)error.code, error.userInfo);
NSLog(@"====%@-- %lld -- %@", task.response.MIMEType,task.response.expectedContentLength,task.response.textEncodingName);
[task cancel];
}];
/*
出现 -1016
在进行网络请求时出现-1016是因为只支持
text/json,application/json,text/javascript
你可以添加text/html 如果不能确定,就置空 nil
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html",@"application/json",nil];
出现 3840
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)"
(JSON text did not start with array or object and option to allow fragments not set.)
没有设置requestSerializer,或者 responseSerializer
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
1xx - 信息提示
2xx - 成功
3xx - 重定向
4xx - 客户端错误*
5xx - 服务器端错误
*/
Java 部分,前提是其他环境正常运行的情况下protectedvoid doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
System.out.println("APP的请求到这里了");
// response.sendError(1111); // 这是可以发送到客户端的 一般是有error
response.setCharacterEncoding("UTF-8");
// response.setContentLength(1000000);
response.setContentType("application/json; charset=utf-8");
//这是测试,模拟的json 数据,实际开发需要用到转json
StringjsonStr = "{\"name\":\"fly\",\"type\":\"虫子\"}";
PrintWriterout =null;
try {
out =response.getWriter();
out.write(jsonStr);
} catch (IOException e) {
e.printStackTrace();
}finally {
if (out !=null)
out.close();
}
}
- iOS客户端 与JAVA 后台http通信
- Unity客户端与后台通信
- HTTP通信--Android客户端与Servlet通信
- 安卓客户端与PHP后台通信
- 移动客户端与后台通信方式三
- ios socket编程初步:iphone客户端与java服务端通信
- Android客户端与Web服务器端Http通信
- http客户端通信 (java原生)
- android客户端与服务器通信的HTTP通信
- cocos2dx CCHttpclient与java后台通信
- flex通过BlazeDS与java后台通信
- Flex中HTTPService与java后台通信
- Flex中用RemoteObject与java后台通信
- 微信小程序与Java后台的通信
- java客户端与服务器通信过程示意图
- Java Socket编程(服务器与客户端通信)
- Java客户端与C++服务器端通信
- java实现客户端与服务器通信
- ARP协议与RARP协议
- OSGI企业应用开发(九)整合Spring和Mybatis框架(二)
- 使用SpringBoot yml配置文件(三)
- Java基础——overload(重载)与overwrite(重写)的区别
- 机器学习实战-第三章(决策树)
- iOS客户端 与JAVA 后台http通信
- 微信小程序开发—(五)弹出框
- 各种机器学习的应用场景
- 函数的调用
- 解决java项目打成jar包之后,GUI界面的logo无法显示问题
- iOS App审核 因IPv6遭到拒绝
- golang中sort包用法
- 对象在内存中是如何体现的
- 使用 linux respin 制作自定义 Ubuntu ISO镜像