[英]Sending JSON Request to server?
我有以下JSON在服務器上發送請求
{
"name":"Home",
"latitude":"45.5037078163837",
"longitude":"-122.622699737549",
"radius":"240"
}
請求的網址為
URL: https://api.geoloqi.com/1/place/create
我是這樣要求的
NSString *urlString= @"https://api.geoloqi.com/1/place/create ";
NSURL* url = [[NSURL alloc] initWithString:urlString];
NSString *jsonRequest = @"{\"name\":\"veer\",\"latitude\":\"45.5037078163837\",\"longitude\":\"-122.622699737549\,\"radius\":\"500\ }";
jsonRequest = [self JSONString:jsonRequest];
NSData* requestData = [jsonRequest dataUsingEncoding:NSUTF8StringEncoding];
NSString* requestDataLengthString = [[NSString alloc] initWithFormat:@"%d", [requestData length]];
NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:requestData];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:requestDataLengthString forHTTPHeaderField:@"Content-Length"];
[request setTimeoutInterval:30.0];
[url release];
[requestData release];
[requestDataLengthString release];
NSURLConnection *m_URLConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[request release];
此請求有什么問題?
您的JSON字符串似乎在經度和半徑值后缺少2個引號:
更改
NSString *jsonRequest = @"{\\"name\\":\\"veer\\",\\"latitude\\":\\"45.5037078163837\\",\\"longitude\\":\\"-122.622699737549\\,\\"radius\\":\\"500\\ }";
對此
NSString *jsonRequest = @"{\\"name\\":\\"veer\\",\\"latitude\\":\\"45.5037078163837\\",\\"longitude\\":\\"-122.622699737549\\",\\"radius\\":\\"500\\" }";
您嘗試訪問的Web服務URL似乎正在使用SSL。 您可能需要在請求標頭中放置訪問令牌,以便從Web服務獲得正確的響應。
請查看身份驗證鏈接: https : //developers.geoloqi.com/api/authentication
從您的問題尚不清楚,這是什么問題。
無論如何,您還在做:
[m_URLConnection start];
建立連接后?
或者,您可以使用以下命令創建連接
[– initWithRequest:delegate:startImmediately:][1]
它允許您指定數據加載應立即開始。
還可以考慮使用[+sendAsynchronousRequest:queue:completionHandler:][2]
作為連接的便捷構造函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.