Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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中通过POST向symfony2服务器发送json_Ios_Objective C_Json_Post_Symfony - Fatal编程技术网

在ios中通过POST向symfony2服务器发送json

在ios中通过POST向symfony2服务器发送json,ios,objective-c,json,post,symfony,Ios,Objective C,Json,Post,Symfony,对不起,我问了个愚蠢的问题,但我已经被这个问题弄疯了:( 我试图通过POST将jSon从iOs前端发送到基于symfony2的服务器 我不知道我做错了什么,但是帖子里什么也没有 以下是前端代码: NSMutableDictionary* objeto = [NSMutableDictionary dictionary]; [objeto setValue:[NSNumber numberWithInt:2] forKey:@"cliente"]; [objeto setValue:[NSNumb

对不起,我问了个愚蠢的问题,但我已经被这个问题弄疯了:(

我试图通过POST将jSon从iOs前端发送到基于symfony2的服务器

我不知道我做错了什么,但是帖子里什么也没有

以下是前端代码:

NSMutableDictionary* objeto = [NSMutableDictionary dictionary];
[objeto setValue:[NSNumber numberWithInt:2] forKey:@"cliente"];
[objeto setValue:[NSNumber numberWithInt:3] forKey:@"usuario"];
[objeto setValue:[NSNumber numberWithInt:4] forKey:@"producto"];
[objeto setValue:[NSNumber numberWithInt:100] forKey:@"cantidad"];

NSLog(@"objeto %@", [objeto JSONRepresentation]);

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:objeto options:kNilOptions error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"JSON String: %@",jsonString);


NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:
[NSURL URLWithString:@"http://xxx.com/nueva_venta"]
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:60.0];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:jsonData];

NSURLConnection *connection = [[[NSURLConnection alloc] initWithRequest:request delegate:self]autorelease];

if(connection)
{
    recibeData = [NSMutableData data];
} 
例如,如果我在服务器端执行此操作:

 /**
* Prueba de nueva venta
* @Route("/nueva_venta", name="nueva_venta")
* @Method("POST")
*/
public function nuevaVenta(){

   $request= Request::createFromGlobals();
       return new Response(json_encode($request->request->all()));
    }
我得到一个空的json:(

如果改为通过Javascript执行请求,则效果良好:

  $(document).ready(function() {

        var venta=new Venta();
        venta.cliente=10;
        venta.usuario=1;
        venta.producto=11;
        venta.cantidad=100;



        var capsulaJson={"cliente": venta.cliente,
                            "usuario":venta.usuario,
                            "producto":venta.producto,
                            "cantidad":venta.cantidad};


      var json=capsulaJson.toString();

    $.post("http://xxx.com/nueva_venta", json,
             function (datos) {
                if (datos) {
                    alert(datos);
                }
                else {
                    alert("No funciona :-(");
                }
            }
);
}); 

任何建议都将不胜感激。

您有输入错误..不要使用jsonData。请使用jsonString

[request setHTTPBody:jsonString];

我怀疑你需要将内容类型设置为
application/json
。你成功了吗?我遇到了完全相同的问题。你还记得你做了什么吗?谢谢!