0
我正在將數據從iOS應用程序發佈到PHP頁面。它正在接收這些數據,但它似乎並沒有收到所有的後期數據,只有大約一半的數據。我發送的數據是一個序列化的圖像,因此它非常大。PHP頁面無法從iOS應用程序接收所有POST數據
我使用下面的代碼後從應用程序中的數據:
NSError *error;
NSData *data =[NSJSONSerialization dataWithJSONObject:dict options:0 error:&error];
NSURL *url = [NSURL URLWithString:link];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d", (int)data.length] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:data];
NSURLResponse *response = nil;
error = nil;
NSData *result = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
然後我用下面的PHP代碼得到這一職位數據。
$handle = fopen('php://input','r');
$jsonInput = fgets($handle);
$decoded = json_decode($jsonInput,true);
這似乎很好地工作,並在我的項目的其他方面的工作,但沒有其他地區發佈這樣的大數據。
我也試過創建一個HTML表單,並通過這個表單發佈這個數據,看看是否有某種大小限制的發佈數據。但是,當我通過html表單發佈數據時,它工作正常,發佈了所有數據。
這個問題可以與fopen/fgets命令和他們可以檢索的數據的某種大小限制有關嗎?
在此先感謝。
我假設你已經base64編碼的圖像字節?我建議完全使用JSON方法併發送帶有適當MIME類型(適用於您的圖像類型)的HTTP請求(例如「image/png」)和原始圖像字節 - 或者,如果您要發送其他參數,請發送「multipart/form-data」請求。 – bgfriend0
這兩種方法中的哪一種傳輸的數據都較少?如果不是,你能建議我如何實現你所描述的? – myles