2010-09-24 45 views
1

這次我在iphone上做了一些上傳的東西。這對我來說絕對是第一次。例子/教程iPhone發佈/上傳請求?

我發現了一些有用的鏈接,並通過google搜索並在stackoverflow上找到它們。

,我能夠通過下面的代碼上傳圖片:

NSData *imageData = UIImageJPEGRepresentation(imageView.image, 90); 
    NSString *urlString = @"server-url"; 
    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc]init] autorelease]; 
    [request setTimeoutInterval:60.0]; 
    [request setURL:[NSURL URLWithString:urlString]]; 
    [request setHTTPMethod:@"POST"]; 

    NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"]; 
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; 
    [request addValue:contentType forHTTPHeaderField:@"Content-Type"]; 

    NSMutableData *body = [NSMutableData data]; 
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

    [body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"file\";filename=\"myfile.jpg\"\r\n"] 
         dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[NSData dataWithData:imageData]]; 
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    //NSString * dataLength = [NSString stringWithFormat:@"%d", [body length]]; 
    //[request addValue:dataLength forHTTPHeaderField:@"Content-Length"]; 

    [request setHTTPBody:body]; 

    NSLog(@"%@",[[NSString alloc] initWithData:[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil] encoding:NSUTF8StringEncoding]); 

但我有很多的問題,上面的代碼是如何工作的像什麼是邊界,什麼是它的格式是什麼內容配置等等。

我已經搜索了很多理解發布請求的格式,但沒有發現任何準備好的代碼如果任何人知道一些很好的教程或實例如何在iPhone中構建發佈請求格式,那麼請提供,所以我可以理解上面的代碼將工作?

回答

1

你可以在這裏查看有關從POST表單返回值的文檔。

http://tools.ietf.org/html/rfc2388

像你說的,代碼工作,這是解釋你所看到的和這一切意味着什麼

+0

哦偉大的工作文件。我需要RFC來理解請求。謝謝 – harshalb 2010-09-24 05:36:13

+0

我的其他參考資料:http://en.wikipedia.org/wiki/MIME,一個rfc 2046現在閱讀。 – harshalb 2010-09-24 05:48:35

+0

@hib有時你必須閱讀詳細信息才能瞭解發生了什麼,所以當有錯誤時,你可以理解它 – 2010-09-24 05:51:27