【发布时间】:2016-04-20 02:38:03
【问题描述】:
使用 IBM Mobile First Platform 7.1 版我正在尝试使用以下代码从 iOS 应用程序调用 Java 适配器。
[[WLResourceRequest requestWithURL:url method:WLHttpMethodPost] sendWithJSON:@{@"one":@"two"} completionHandler:^(WLResponse *response, NSError *error) {
NSLog(@"%@",response);
NSLog(@"%@",error);
}];
适配器端的Java方法如下所示。
@POST
@Consumes("application/json")
@Produces("application/json")
public String hello(JSONObject body){
return body.toString();
}
但我得到以下响应错误
2016-04-20 11:31:15.520 mbs-call[15092:3787968] 错误域=com.alamofire.error.serialization.response Code=-1011“请求失败:不支持的媒体类型 (415)”UserInfo= {com.alamofire.serialization.response.error.response= { URL: http:/0.0.0.0:10080/mbs-api/adapters/basicadpt/users } { 状态码: 415, headers { 连接=关闭; "内容语言" = "en-US"; “内容长度”= 0; 日期 =“格林威治标准时间 2016 年 4 月 20 日星期三 02:31:15”; "X-Powered-By" = "Servlet/3.0"; } }, NSErrorFailingURLKey=http://0.0.0.0:10080/mbs-api/adapters/basicadpt/users, com.alamofire.serialization.response.error.data=, NSLocalizedDescription=请求失败:不支持的媒体类型 (415)}
似乎在 iOS SDK 中,当调用任何方法时,它会在请求中添加标头 application/x-www-url-form-urlencoded。
我有以下 2 个问题。
- 如何将 JSON 正文传递给 Java 适配器?
-
sendWithJSON的行为在 iOS 和 Android 上是不同的。在 Android 上,当我们调用适配器时,它似乎添加了application/json标头。这是错误还是行为的一部分?
【问题讨论】:
标签: ibm-mobilefirst mobilefirst-adapters mobilefirst-server