簡體   English   中英

向服務器發送JSON請求?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM