Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从iOS向java web服务发布JSON数据_Java_Ios_Objective C_Json_Afnetworking 2 - Fatal编程技术网

从iOS向java web服务发布JSON数据

从iOS向java web服务发布JSON数据,java,ios,objective-c,json,afnetworking-2,Java,Ios,Objective C,Json,Afnetworking 2,我正试图将简单的文本或名称作为json从iOS应用程序发送到我的java web服务,但不幸的是没有成功。以下是我的iOS邮政编码: - (IBAction)cmdRegister:(id)sender { AFSecurityPolicy *policy = [[AFSecurityPolicy alloc] init]; [policy setAllowInvalidCertificates:YES]; AFHTTPRequestOperationManag

我正试图将简单的文本或名称作为json从iOS应用程序发送到我的java web服务,但不幸的是没有成功。以下是我的iOS邮政编码:

- (IBAction)cmdRegister:(id)sender {    
    AFSecurityPolicy *policy = [[AFSecurityPolicy alloc] init];
    [policy setAllowInvalidCertificates:YES];

    AFHTTPRequestOperationManager *operationManager = [AFHTTPRequestOperationManager manager];
    [operationManager setSecurityPolicy:policy];
    operationManager.requestSerializer = [AFJSONRequestSerializer serializer];
    operationManager.responseSerializer = [AFJSONResponseSerializer serializer];

    [operationManager POST:@"http://localhost:8080/com.webservice/rest/status/member/"
                parameters:@{@"name":@"john"}
                success:^(AFHTTPRequestOperation *operation, id responseObject) {
                       NSLog(@"JSON: %@", [responseObject description]);
                   }
                   failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                       NSLog(@"Error: %@", [error description]);
                   }
     ];     
}
以下是我的java web服务方法:

@POST
@Path("/member/{name}")
@Consumes(MediaType.APPLICATION_JSON)
public Response addNewCustomer(@PathParam("name") String name) throws Exception {
  String returnString=null;
  MemberDAO dao = new MemberDAO();
  try{
      ObjectMapper mapper = new ObjectMapper();  
      Customer customer =mapper.readValue(name, Customer.class);

      //add to database the passed in params
      int returnCode =dao.insertMembers(name);

      //return the success or failure
      if(returnCode ==200){
        returnString ="Member has been added";
      } else {
        return Response.status(500).entity("Unable to process member    registration").build();
      }

  } catch(Exception ex) {
    ex.printStackTrace();
  }

  return Response.ok(returnString).build();
}
按原样运行不会出现错误,也不会更新数据库。我已经搜索并找到了类似的帖子,但没有任何线索,请帮助

我不确定我做错了什么


非常感谢您的帮助。

我可以在这方面帮助您。但我不知道您编写的java服务器代码(我认为使用JBoss)是否正确

您向我显示代码并尝试此代码(iOS):

-(void)viewDidLoad
{
[超级视图下载];
NSString*strURL=@”http://YOUR_IP:YOUR_PORT/YOUR_PATH/../../..";
AFHTTPRequestOperationManager*manager=[AFHTTPRequestOperationManager];
AFJSONRequestSerializer*serializerRequest=[AFJSONRequestSerializer];
[serializerRequest setValue:@“应用程序/x-www-form-urlencoded;字符集=utf-8”用于HttpHeaderField:@“内容类型”];
AFJSONResponseSerializer*serializerResponse=[AFJSONResponseSerializer];
serializerResponse.readingOptions=NSJSONReadingAllowFragments;
serializerResponse.acceptableContentTypes=[NSSet setWithObject:@“application/json”];
manager.requestSerializer=serializerRequest;
manager.responseSerializer=序列化响应;
UIImage*image=[UIImage ImageName:@“SIMPLE_image.png”];
NSData*imageData=[NSData-dataWithData:UIImagePNGRepresentation(image)];
NSDictionary*参数=@{@“name”:@“Jhon”};
[manager POST:strURL参数:参数constructingBodyWithBlock:^(id formData){
[formData appendPartWithFormData:imageData名称:@“照片”];
}成功:^(AFHTTPRequestOperation*操作,id响应对象){
strResultResponse=operation.responseString;
}失败:^(AFHTTPRequestOperation*操作,NSError*错误){
strResultResponse=operation.responseString;
}];
}
您发送到服务器的代码、参数字符串和nsdata(图像)。您可以调整代码并尝试运行。
对不起,如果没有多大帮助的话。祝你好运。

AFHTTPRequestOperationManager*operationmanager=[AFHTTPRequestOperationManager]

AFJSONRequestSerializer *serializerRequest = [AFJSONRequestSerializer serializer];

[serializerRequest setStringEncoding:NSUTF8StringEncoding];

 operationmanager.requestSerializer = serializerRequest;

operationmanager.responseSerializer.acceptableContentTypes=[NSSet setWithObjects:@"text/html", nil];

[operationmanager POST:getCategoryPath parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {

} success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"%@",responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

}];
AFJSONRequestSerializer*serializerRequest=[AFJSONRequestSerializer];
[serializerRequest SetStringCodeing:NSUTF8StringEncoding];
operationmanager.requestSerializer=serializerRequest;
operationmanager.responseSerializer.acceptableContentTypes=[NSSETSetWithObjects:@“text/html”,nil];
[operationmanager POST:getCategoryPath参数:nil constructingBodyWithBlock:^(id formData){
}成功:^(AFHTTPRequestOperation*操作,id响应对象){
NSLog(@“%@”,响应对象);
}失败:^(AFHTTPRequestOperation*操作,NSError*错误){
}];

那么您是说您从服务器获得了返回代码200,但数据库没有更新?您是否已将传输的数据转储到两端,以查看其是否正确??谢谢@Ryuchan,我将尝试并让您知道结果。web服务基于glass fish 4.0,我不确定是否需要配置glass fish以接受POST。我可以很容易地使用GET传递参数并返回JSON,而不会出现任何问题。如果您知道如何配置web服务器以接受来自客户端的帖子,也请告诉我。
AFJSONRequestSerializer *serializerRequest = [AFJSONRequestSerializer serializer];

[serializerRequest setStringEncoding:NSUTF8StringEncoding];

 operationmanager.requestSerializer = serializerRequest;

operationmanager.responseSerializer.acceptableContentTypes=[NSSet setWithObjects:@"text/html", nil];

[operationmanager POST:getCategoryPath parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {

} success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"%@",responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

}];