I’m using JSONKit.h, JSONKit.m, ios5.1.
and I tried to send data using GET method and POST also but my django server gave errors.
Is my code wrong?
here is my codes.
NSString *myid = @"myidddd";
NSString *mypw = @"mypwwww";
NSArray *objects = [NSArray arrayWithObjects:myid,mypw, nil];
NSArray *keys = [NSArray arrayWithObjects:@"id", @"pw", nil];
NSDictionary *dic = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
NSString *jsonInfo = [dic JSONString];
NSData *jsonData = [jsonInfo dataUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:[[NSURL alloc] initWithString:@"http://www.scg.com:8000/post"]];
[request setHTTPMethod:@"GET"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [jsonData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:jsonData];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *res, NSData *data, NSError *err){
[self didReceiveData:data];
}];
Errors when my django server received the data,
raceback (most recent call last):
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py”, line 86, in run
self.finish_response()
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py”, line 127, in finish_response
Traceback (most recent call last):
self.write(data)
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py”, line 86, in run
self.finish_response()
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py”, line 210, in write
self.send_headers()
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py”, line 268, in send_headers
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py”, line 127, in finish_response
self.send_preamble()
self.write(data)
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py”, line 210, in write
self.send_headers()
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py”, line 268, in send_headers
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py”, line 192, in send_preamble
self.send_preamble()
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py”, line 192, in send_preamble
‘Date: %s\r\n’ % format_date_time(time.time())
Traceback (most recent call last):
‘Date: %s\r\n’ % format_date_time(time.time())
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py”, line 324, in write
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py”, line 86, in run
self.flush()
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py”, line 303, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
Exception happened during processing of request from (‘127.0.0.1’, 54842)
Traceback (most recent call last):
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py”, line 582, in process_request_thread
self.finish_request(request, client_address)
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py”, line 323, in finish_request
self.RequestHandlerClass(request, client_address, self)
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/servers/basehttp.py”, line 139, in init
super(WSGIRequestHandler, self).init(*args, **kwargs)
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py”, line 641, in init
self.finish()
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py”, line 694, in finish
self.wfile.flush()
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py”, line 303, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
self.finish_response()
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py”, line 127, in finish_response
self.write(data)
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py”, line 210, in write
self.send_headers()
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py”, line 268, in send_headers
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py”, line 324, in write
self.flush()
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py”, line 303, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
Exception happened during processing of request from (‘127.0.0.1’, 54843)
Traceback (most recent call last):
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py”, line 582, in process_request_thread
self.finish_request(request, client_address)
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py”, line 323, in finish_request
self.RequestHandlerClass(request, client_address, self)
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/servers/basehttp.py”, line 139, in init
super(WSGIRequestHandler, self).init(*args, **kwargs)
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py”, line 641, in init
self.finish()
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py”, line 694, in finish
self.wfile.flush()
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py”, line 303, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
self.send_preamble()
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py”, line 192, in send_preamble
‘Date: %s\r\n’ % format_date_time(time.time())
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py”, line 324, in write
self.flush()
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py”, line 303, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
Exception happened during processing of request from (‘127.0.0.1’, 54844)
Traceback (most recent call last):
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py”, line 582, in process_request_thread
self.finish_request(request, client_address)
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py”, line 323, in finish_request
self.RequestHandlerClass(request, client_address, self)
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/servers/basehttp.py”, line 139, in init
super(WSGIRequestHandler, self).init(*args, **kwargs)
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py”, line 641, in init
self.finish()
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py”, line 694, in finish
self.wfile.flush()
File “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py”, line 303, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
Self answer.
The GET method can’t contain data into http body. It is possible only use POST method.
To send some information with GET method, use extended request URL like:
Here is sample URL: