0
A
回答
1
這取決於你想發送到服務器。例如:圖像文件或文本(就像來自http表單)。
對於一個映像文件格式的UIImage:
NSData *imageData = [NSData dataWithContentsOfFile:ImagePath];
或
NSData *imageData = UIImageJPEGRepresentation(myImage.image, 1.0);
設置你的遠程URL(例如,如果你正在使用PHP)
NSString *urlString = "http://yourdomain.com/yourphpfile.php"
其餘代碼:
NSMutableURLRequest *request2 = [[[NSMutableURLRequest alloc] init] autorelease];
[request2 setURL:[NSURL URLWithString:urlString]];
[request2 setHTTPMethod:@"POST"];
NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"];
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request2 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='userfile'; filename='"] dataUsingEncoding:NSUTF8StringEncoding]];
//give any name for your file(this case image file example)
[body appendData:[[NSString stringWithString:pic_filename.jpg] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"'\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
//add the file data to the http body
[body appendData:[NSData dataWithData:imageData]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
// setting the body of the post to the reqeust
[request2 setHTTPBody:body];
只是文本(在PHP類似於$ _GET)
準備要發送數據的情況。對於來自例如
//You have your first name stored in the_first_name_to_send variable
NSString *f_name = nil;
f_name = [[NSString alloc] initWithFormat:@"%@", the_first_name_to_send];
//Encoding conversion
//This is optional but it ensures that every character encoding type is sent without issues
NSString* escapedUrlStringFirstName =[f_name stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
NSString *string1 = @"firstName=";
NSString *myRequestString;
myRequestString = [string1 stringByAppendingString:escapedUrlStringFirstName];
NSData *myRequestData = [ NSData dataWithBytes: [ myRequestString UTF8String ] length: [ myRequestString length ] ];
NSMutableURLRequest *request2 = [[[NSMutableURLRequest alloc] init] autorelease];
[request2 setHTTPBody: myRequestData ];
[request2 setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
NSData *returnData2 = [ NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil ];
returnData2 = nil;
上傳圖像文件(在服務器端yourphpfile.php)
$file_tmp = $_FILES['userfile']['tmp_name'];
$filename = $_FILES['userfile']['name'];
使用HTTP POST發送文本(服務器端yourphpfile.php)
形式的第一個名字$fname = $_POST["firstName"];
0
相關問題
- 1. Backbone在Http Post中創建不發送數據給服務器?
- 2. Web服務V HTTP Post?
- 3. 如何跟蹤Apache Web服務器接收到的HTTP數據?
- 4. UIIMAGE和參數到web服務器的HTTP POST
- 5. 請求到Web服務(POST)
- 6. 如何創建Web服務器
- 7. 創建HTTP服務器的
- 8. 如何創建Web服務
- 9. 如何使用標題和數據創建JavaScript POST請求到服務器
- 10. 數據發佈到服務器的角度$ HTTP POST
- 11. 使用HTTP從Excel發送數據到服務器Post
- 12. 通過http post發送數據從客戶端到服務器
- 13. Android - 如何POST數據到服務器數據庫
- 14. 如何通過AJAX POST將「數據」發送到ASMX Web服務?
- 15. 如何傳遞多個參數RESTful Web服務使用HTTP POST
- 16. 設置HTTP POST服務器
- 17. 創建只讀數據庫/ Web服務?
- 18. 將數據發送到Web服務器
- 19. 發送數據到Web服務器
- 20. HTTP POST和得到服務
- 21. HTTP POST到WCF服務
- 22. ADO.Net數據服務如何支持POST不是創建?
- 23. 使用Cocoa構建HTTP Web服務器
- 24. WSO2創建SCEP服務器的HTTP GET API POST
- 25. 無法創建網站'http:// localhost/WindowsService'。無法找到Web服務器的'http:// localhost'
- 26. C- HTTP Web服務器:如何緩存
- 27. 在Web服務上接收POST數據
- 28. 如何使用android通過Http post方法發送數據到服務器?
- 29. .NET Web服務收到HTTP POST請求(500)內部服務器錯誤
- 30. 如何創建Rest Web服務客戶端和服務器
感謝您的快速回復。我試圖將10000字節的文本數據發佈到服務器。與上述有點不同嗎? – Ferdinand 2010-02-12 10:47:41
謝謝。我知道了。 – Ferdinand 2010-02-12 11:11:52
應該沒有區別。請注意,發送的數據對於文本和圖像都採用NSData格式。我曾與包含超過500000字節的圖像:)。這些行: [NSData dataWithData:imageData] and [NSData dataWithBytes:[myRequestString UTF8String] length:[myRequestString length]]; – erastusnjuki 2010-02-12 11:17:44