我进入了我的应用程序开发的最后阶段,这是我以前从未做过的事情。
我的 friend 使用 django rest 框架为我的应用程序开发了用于发送和接收数据的 API。
我需要对我的应用进行身份验证才能连接到它、发送一些数据和接收数据。
到目前为止我发现的是:
NSURL *url = [NSURL URLWithString"http://localhost:8080/my/path/to/api/login/"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
NSString *authStr = [NSString stringWithFormat"%@:%@", @"myUsername", @"myPassword"];
NSData *authData = [authStr dataUsingEncoding:NSASCIIStringEncoding];
NSString *authValue = [NSString stringWithFormat"Basic %@", authData];
[request setValue:authValue forHTTPHeaderField"Authorization"];
[request setHTTPMethod"GET"];
[request setValue"application/json" forHTTPHeaderField"Accept"];
//--------------------------------------------- -------------------------------------------------- -------------------------------------------------//
//EDIT: Added this based on answer form @Quver.
NSURLResponse *response1;
NSError *responseError;
NSData *result = [NSURLConnection sendSynchronousRequest:request returningResponse:&response1 error:&responseError];
if (result.length > 0 && responseError == nil)
{
NSDictionary *greeting = [NSJSONSerialization JSONObjectWithData:result
options:0
error:NULL];
NSLog(@"Got response form server: %@", greeting);
}
这等于输出如下:
<0a0a3c68 746d6c3e 0a0a2020 20203c68 6561643e 0a202020 20202020 200a2020 20202020 20200a20 20202020 + ~50 行类似的东西。希望这会有所帮助。
//--------------------------------------------- -------------------------------------------------- ------------------------------------------------------//
我想这是创建请求的方式。接下来我该怎么办?我怎么知道我已经连接了?
那么,如果我已经连接,我如何在那里获取数据? (我有一个 url,它给我 json 作为输出 - 这就是我想要得到的)。假设 url 为 http://localhost:8080/url/that/gives/json/ 。
感谢您的帮助。希望这是该问题的足够信息。我会添加任何其他需要的内容。
Best Answer-推荐答案 strong>
NSURLResponse *response;
NSError *responseError;
NSData *result = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&responseError];
添加此项以获得响应。你已经准备好了请求,现在是时候用 NSURLConnection 发送它了。我同步请求是异步的,因为使用 GCD 进行整个方法请求 + sqlite 更新。
关于ios - 如何将(GET请求)ios应用程序连接到django rest框架,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/25294661/
|