2015-07-13 216 views
3

我竭力把這些捲曲的請求爲目的 - C(我會在以後更改API密鑰):捲曲請求

GET請求:

curl -v -H "app_id:4bf7860a" -H "app_key:0026e51c7e5074bfe0a0c2d4985804b2" -X GET "http://data.leafly.com/strains/blue-dream" 

帖子要求:

curl -v -H "app_id:4bf7860a" -H "app_key:0026e51c7e5074bfe0a0c2d4985804b2" -X POST "http://data.leafly.com/strains" -d '{"Page":0,"Take":10}' 

我已經能夠弄到一個成功的請求:

NSURL *url = [NSURL URLWithString: [NSString stringWithFormat:@"http://data.leafly.com/strains/blue-dream"]]; 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
    [request setHTTPMethod:@"GET"]; 
    [request setValue:@"application/json" forHTTPHeaderField: @"Content-Type"]; 
    [request addValue:@"4bf7860a" forHTTPHeaderField: @"APP_ID"]; 
    [request addValue:@"03d3eaa965c5809c5ac06a25505a8fe4" forHTTPHeaderField:@"APP_KEY"]; 

    NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration]; 
    NSURLSession *session = [NSURLSession sessionWithConfiguration: defaultConfigObject delegate: nil delegateQueue: [NSOperationQueue mainQueue]]; 

    NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 
     NSLog(@"Data: %@",data); 

     if (error) { 
      NSLog(@"ERROR: %@", error); 
     } else { 
      NSDictionary *jSONresult = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error]; 
      NSLog(@"Strain %@",jSONresult); 
     } 
    }]; 
    [task resume]; 

我只是不能拼湊一個全面的方式來一致地拼湊這些請求(我試過http://unirest.io/objective-c.html)。任何人都可以指點我一個很好的資源,或者幫助我思考我做錯了什麼?

回答

7

查看下面的代碼段,應該肯定有幫助。

NSString *Post = [[NSString alloc] initWithFormat:@"{Page:0, Take:10}"]; 
NSData *PostData = [Post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 

NSURL *url = [NSURL URLWithString:@"http://data.leafly.com/strains"]; 
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url]; 
[req setHTTPMethod:@"POST"]; 
[req addValue:@"a2eaffe2" forHTTPHeaderField: @"app_id"]; 
[req addValue:@"49588984075af3d275a56c93b63eedc0" forHTTPHeaderField:@"app_key"]; 
[req setHTTPBody:PostData]; 

NSData *res = [NSURLConnection sendSynchronousRequest:req returningResponse:NULL error:NULL]; 
NSString *myString = [[NSString alloc] initWithData:res encoding:NSUTF8StringEncoding]; 
NSLog(@"%@", myString); 
+1

非常感謝這真的幫了大忙! –