Objective-C的盒子2.0文件上传 - 问题(Objective-C Box 2.0 Fil

2019-07-30 12:29发布

我一直试图让文件上传与盒工作在过去的几天。 我知道我做错了什么,但看不出它是什么。

我已经减少了我的代码下来,就像我所能,只是这样的:

// Configure the request
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"https://api.box.com/2.0/files/data"]];
[request setHTTPMethod:@"POST"];

[request setValue:boxAuthString forHTTPHeaderField:@"Authorization"];

// Setu up the request
NSString *boundary = [NSString stringWithString:@"--PLEASEHELPMEGETTHISWORKING"];
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@\r\n",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];

NSMutableData *body = [NSMutableData data];

// Add the info and data for the file.
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Disposition:form-data;name=\"filename\";filename=\"testfile.txt\"\r\n"]
                      dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Type:text/plain\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Hello"] dataUsingEncoding:NSUTF8StringEncoding]];

// Add the info and data for the target folder. 
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Disposition:form-data;name=\"folder_id\"\r\n\r\n"]
                  dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"0"] dataUsingEncoding:NSASCIIStringEncoding]];  

// Close the body and set to the request
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding: NSUTF8StringEncoding]];
[request setHTTPBody:body];    

// now lets make the connection to the web
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];

NSLog(@"%@", returnString);

但是,我仍然得到的回报:{ “类型”: “错误”, “状态”:404, “代码”: “NOT_FOUND”, “HELP_URL”:“http://developers.box.com/docs/#误差”, “信息”: “未找到”, “REQUEST_ID”: “10130600215xxxxxxxxxxx”}

请有人可以帮我指出正确的方向,因为当我使用邮差或卷曲,我可以得到它的工作 - 所以这显然是我的代码的问题。 我怀疑这是值得做的“folder_id”,但似乎无法诊断的实际原因。

Answer 1:

固定它。 这个问题在我的“边界”建设的代码。 我已经得到了:

NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@\r\n",boundary]; 

而且应该有:

NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; 

现货不正确的终止 '\ r \ n'。 那好吧。 只有浪费在这个约4小时。 :-)



文章来源: Objective-C Box 2.0 File Upload - Problems