博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从IOS端传递过来数据 java接受
阅读量:5740 次
发布时间:2019-06-18

本文共 3671 字,大约阅读时间需要 12 分钟。

hot3.png

iOS端实现思路:

iOS端既然要传json格式的数据,必然会封装成OC字典。熟悉json格式的人都知道,json的大括号就是对应OC字典,而json的小括号对应OC的数组。

第一步,iOS端肯定要把所有要传的值全部封装成OC字典的格式。

第二步,把封装好的OC字典通过NSJSONSerialization转化成NSData
第三步,把得到的NSData再转成NSString类型。

以上三步,说白了就是把要传输的值转成NSString类型来传。那么,java服务器自然就是字符串的形式来接收即可。

iOS端参考代码:

NSDictionary *jsonDict = @{@"stallInfo":@[                                       @{@"stallName":stallName,@"shopOneName":shopOneName,@"shopOneDes":shopOneDes,@"shopTwoName":shopTwoName,@"shopTwoDes":shopTwoDes}],                               @"longtitude":longtitude,                               @"latitude":latitude                               };    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict options:NSJSONWritingPrettyPrinted error:nil];    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];    [PublicAPI requestForPitchParam:jsonString callback:^(id obj) {    }];
+(void)requestForPitchParam:(id)param callback:(ZFCallBack)callback{    NSString *path = @"http://192.168.1.101:8080/MoveStall/pitch";    NSMutableURLRequest *request = [PublicAPI setupURLRequestAndPath:path param:param requestMethod:@"POST"];    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];    [PublicAPI httpSession:request success:^(id responseOjb) {        callback(responseOjb);    } failure:^(NSError *error) {        callback(error.localizedDescription);    }];}
+(NSMutableURLRequest *)setupURLRequestAndPath:(NSString *)path param:(id)param requestMethod:(NSString *)requestMethod{    path = [path stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];    NSURL *url = [NSURL URLWithString:path];    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];    request.HTTPBody = [param dataUsingEncoding:NSUTF8StringEncoding];    request.timeoutInterval = 30;    request.HTTPMethod = requestMethod;    return request;}
+(void)httpSession:(NSMutableURLRequest *)urlRequest success:(void(^)(id responseOjb))success failure:(void(^)(NSError *))failure{    NSURLSession *session = [NSURLSession sharedSession];    [[session dataTaskWithRequest:urlRequest completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {        if (error) {            failure(error);        }        else        {            NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];            success(dict);        }    }] resume];}

Java服务器实现思路:

上面,已经阐述过了iOS端实际是发送字符串,那么Java服务器以接受字符串的方式来接收即可。而在这里,Java服务器采用servlet来编写。

Java服务器参考代码:

/**    * 获取请求的 body    * @param req    * @return    * @throws IOException    */    public static String getRequestBody(HttpServletRequest req) throws IOException {    BufferedReader reader = req.getReader();    String input = null;    StringBuffer requestBody = new StringBuffer();    while((input = reader.readLine()) != null) {    requestBody.append(input);    }    return requestBody.toString();    }
/**     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)     */    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // TODO Auto-generated method stub        response.setContentType("text/html");        response.setCharacterEncoding("utf-8");         String jsonString = getRequestBody(request);         System.out.println(jsonString);         JSONObject jsonObj = JSONObject.fromObject(jsonString);         System.out.println(jsonObj);    }

Java服务器接收到Json格式数据后,可以通过JsonObjectJsonArray类来转化,方便取出里面的值。这里就不再赘述,读者可自行百度。

转载于:https://my.oschina.net/zhangph89/blog/1553799

你可能感兴趣的文章
实现Hyper-V 虚拟机在不同架构的处理器间迁移
查看>>
linux根目录下的文件解析
查看>>
简单使用saltstack
查看>>
针对web服务器容灾自动切换方案
查看>>
LTE学习笔记(一)——背景知识
查看>>
突破媒体转码效率壁垒 阿里云首推倍速转码
查看>>
容器存储中那些潜在的挑战和机遇
查看>>
程序员该懂一点儿KPI
查看>>
R语言的三种聚类方法
查看>>
55%受访企业将物联网战略视为有效竞争手段
查看>>
深入理解Python中的ThreadLocal变量(上)
查看>>
如果一切即服务,为什么需要数据中心?
查看>>
《游戏开发物理学(第2版)》一导读
查看>>
Erlang简史(翻译)
查看>>
深入实践Spring Boot2.4.2 节点和关系实体建模
查看>>
信息可视化的经典案例:伦敦地铁线路图
查看>>
10个巨大的科学难题需要大数据解决方案
查看>>
Setting Up a Kerberos server (with Debian/Ubuntu)
查看>>
用 ThreadLocal 管理用户session
查看>>
setprecision后是要四舍五入吗?
查看>>