2012-11-29 152 views
0

我想发送一个HTTP POST请求到一个键值对使用POST方法,它返回给我一个json响应。如何POST请求获取jSON响应

CODE

//[dictionnary setObject:@"tId" forKey:@"serialnumber"]; 
NSMutableDictionary *dictionnary = [NSMutableDictionary dictionary]; 
     [dictionnary setObject:[NSString stringWithFormat:@"tId"] forKey:@"serialnumber"]; 
    [dictionnary setObject:[NSString stringWithFormat:@"tname"] forKey:@"mobileimei"]; 
    [dictionnary setObject:[NSString stringWithFormat: @"tprice"] forKey:@"submerchantguid"]; 
    [dictionnary setObject:[NSString stringWithFormat: @"tquan"] forKey:@"transactionid"]; 
    [dictionnary setObject:[NSString stringWithFormat: @"tquan"] forKey:@"emailid"]; 
    [dictionnary setObject:[NSString stringWithFormat: @"tquan"] forKey:@"mobileno"]; 
    [dictionnary setObject:[NSString stringWithFormat: @"tquan"] forKey:@"signature"]; 
    [dictionnary setObject:[NSString stringWithFormat:@"tquan"] forKey:@"photo"]; 


NSError *error = nil; 
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionnary 
                 options:kNilOptions 
                 error:&error]; 
    NSLog(@"Error is %@",error); 

    NSString *urlString = @"MY_POST_URL/transaction/model/transactionsuccess"; 
    //NSString *urlString = @"http://yahoo.com"; 
    NSURL *url = [NSURL URLWithString:urlString]; 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
    [request setHTTPMethod:@"POST"]; 

    [request setHTTPBody:jsonData]; 
    NSURLResponse *response = NULL; 
    NSError *requestError = NULL; 
    NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&requestError]; 
    NSLog(@"request Error %@",requestError); 
    NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding] ; 
    NSLog(@"%@", responseString); 

输出

inside submitinfo method 
2012-11-29 12:13:02.238 ReaderDeployment[1568:11f03] Error is (null) 
2012-11-29 12:13:03.005 ReaderDeployment[1568:11f03] request Error (null) 
2012-11-29 12:13:03.006 ReaderDeployment[1568:11f03] <!DOCTYPE html PUBLIC 
    "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
<title>PHP notice</title> 

<style type="text/css"> 
/*<![CDATA[*/ 
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;margin:0;padding:0;} 
body{line-height:1;} 
ol,ul{list-style:none;} 
blockquote,q{quotes:none;} 
blockquote:before,blockquote:after,q:before,q:after{content:none;} 
:focus{outline:0;} 
ins{text-decoration:none;} 
del{text-decoration:line-through;} 
table{border-collapse:collapse;border-spacing:0;} 

body { 
    font: normal 9pt "Verdana"; 
    color: #000; 
    background: #fff; 
} 

h1 { 
    font: normal 18pt "Verdana"; 
    color: #f00; 
    margin-bottom: .5em; 
} 

h2 { 
    font: normal 14pt "Verdana"; 
    color: #800000; 
    margin-bottom: .5em; 
} 

h3 { 
    font: bold 11pt "Verdana"; 
} 

pre { 
    font: normal 11pt Menlo, Consolas, "Lucida Console", Monospace; 
} 

pre span.error { 
    display: block; 
    background: #fce3e3; 
} 

pre span.ln { 
    color: #999; 
    padding-right: 0.5em; 
    border-right: 1px solid #ccc; 
} 

pre span.error-ln { 
    font-weight: bold; 
} 

.container { 
    margin: 1em 4em; 
.......... 

请纠正我,什么是错的code.I也曾尝试发送所有值的细节使用

[dictionnary setObject:@"tId" forKey:@"serialnumber"]; 

格式也。我没有得到任何错误,仍然没有实现预期的json响应。后端只接收信息,并将状态显示为“0”或“1”。相反,显示出一些奇怪的输出,我想它是css脚本。

回答

1

您在服务器端有错误,你不能直接使用JSON你必须JSON转换成数组json_decode先,然后使用数组

这是如何将PHP JSON转换成的值array http://php.net/manual/en/function.json-decode.php

另外要返回json,您应该将您的php数组再次格式化为JSON编码