【问题标题】:Tutorials for using HTTP POST and GET on the iPhone in Objective-C [closed]在 Objective-C 中在 iPhone 上使用 HTTP POST 和 GET 的教程 [关闭]
【发布时间】:2010-02-27 09:53:47
【问题描述】:

我下载了苹果的使用 HTTP POST 和 GET 的演示(他们的示例应用程序有一个带有不同部分的标签栏),代码太混乱了!

谁能给我一些示例代码或一些关于它的教程的链接? :)

谢谢!

【问题讨论】:

    标签: objective-c http post get


    【解决方案1】:

    Matt Long 的这个演练特别好: http://www.cimgf.com/2010/02/12/accessing-the-cloud-from-cocoa-touch/

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] 
            initWithURL:[NSURL 
            URLWithString:@"http://www.cimgf.com/testpost.php"]];
     
    [request setHTTPMethod:@"POST"];
    [request setValue:@"text/xml" 
                  forHTTPHeaderField:@"Content-type"];
     
    NSString *xmlString = @"<data><item>Item 1</item><item>Item 2</item></data>";
     
    [request setValue:[NSString stringWithFormat:@"%d",
            [xmlString length]] 
            forHTTPHeaderField:@"Content-length"];
     
    [request setHTTPBody:[xmlString 
            dataUsingEncoding:NSUTF8StringEncoding]];
     
    [[NSURLConnection alloc] 
            initWithRequest:request 
                       delegate:self];
    

    【讨论】:

      【解决方案2】:

      这是使用 GET 的简单方法:

         NSURL *url = [NSURL URLWithString:@"http://www.32133.com/test?name=xx"];
         NSData *data = [NSData dataWithContentsOfURL:url];
         NSString *ret = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
         NSLog(@"ret=%@", ret);
      

      【讨论】:

        【解决方案3】:

        您可能还想查看此示例

        ASIFormDataRequest  *request =
             [[[ASIFormDataRequest  alloc]  initWithURL:url] autorelease];
        [request setPostValue:@"Ben" forKey:@"first_name"];
        [request setPostValue:@"Copsey" forKey:@"last_name"];
        [request setFile:@"/Users/ben/Desktop/ben.jpg" forKey:@"photo"];
        

        您可以在此处找到更多详细信息: http://www.redcodelabs.com/2009/08/objective-c-http-post-get-data/

        【讨论】:

        【解决方案4】:

        在objective-c中实现HTTP请求的方法有很多,CFNetwork库就是为此目的而设计的,但是开发http请求最简单的方法是使用NSURLConnection

        这是一个示例:

        NSURLConnection *cmdConn = [[[NSURLConnection alloc] initWithRequest:req delegate:self startImmediately:YES] autorelease];
        

        您将收到didreceiveResponse:didreceiveData: 代表的回复。

        【讨论】:

          【解决方案5】:

          如果您想发布表单,希望这对您有所帮助:

          NSMutableURLRequest *request = 
                  [[NSMutableURLRequest alloc] initWithURL:
                      [NSURL URLWithString:@"http://www.32133.com/test"]];
          
          [request setHTTPMethod:@"POST"];
          
          NSString *postString = @"name=ivybridge&description=This%20is%20desp.";
          
          [request setValue:[NSString 
                  stringWithFormat:@"%d", [postString length]] 
                  forHTTPHeaderField:@"Content-length"];
          
          [request setHTTPBody:[postString 
                  dataUsingEncoding:NSUTF8StringEncoding]];
          
          [[NSURLConnection alloc] 
                  initWithRequest:request delegate:self];
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-01-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多