iOS使用REST API将图片上传到OneDrive

前et

我正在尝试使用他们提供的REST API将图像从我的应用程序上传到onedrive。但是缺少一些PST方法的格式,请帮助解决。我在做

NSString *urlString = [NSString stringWithFormat:@"https://apis.live.net/v5.0/me/skydrive/files?access_token=%@",oneDriveAccessToken];
NSMutableURLRequest *request =[[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];

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

//-- Append data into post url using following method
NSMutableData *body = [NSMutableData data];

//-- "image_name" is file name of the image (we can set custom name)
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

[body appendData:[[NSString stringWithFormat:@"Content-Disposition:form-data; name=\"file\"; filename=\"%@\"\n",@"name.JPG"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\n\r\n\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:data]];
[body appendData:[[NSString stringWithFormat:@"--%@--",boundary] dataUsingEncoding:NSUTF8StringEncoding]];


//-- Sending data into server through URL
[request setHTTPBody:body];

//-- Getting response form server
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

//-- JSON Parsing with response data
NSDictionary *result = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:nil];
NSLog(@"Result = %@",result);

我得到的回应是:

Result = {
    error =     {
        code = "request_body_invalid";
        message = "The request entity body for multipart form-data POST isn't valid. The expected format is:
\n--[boundary]
\nContent-Disposition: form-data; name=\"file\"; filename=\"[FileName]\"
\nContent-Type: application/octet-stream
\n[CR][LF]
\n[file contents]
\n--[boundary]--[CR][LF]";
    };
}

我正在关注此http://msdn.microsoft.com/zh-cn/library/hh826531.aspx#uploading_files

根据Jeffery的建议,错误消息为:

Result = { error = { code = "request_body_invalid"; message = "The 
request entity body has an incorrect value in the 'Content-Disposition' 
header. The expected format for this value is 'Content-Disposition: form-
data; name=\"file\"; filename=\"[FileName]\"'."; }; } 
杰弗里·托马斯(Jeffery Thomas)

猜测是,您正在处理行尾。有时候,你正在使用\n有时\r\n您必须始终使用\r\n附带说明,您不需要在\r\n首次-appendData通话时使用姓名缩写。最后,检查边界字符串:它们通常更长一些,以避免内容中具有完全相同的字节。

NSString *boundary = @"A300x-make-it-longer-to-reduce-risk-12345";

…

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

[body appendData:[[NSString stringWithFormat:@"Content-Disposition:form-data; name=\"file\"; filename=\"%@\"\r\n", @"name.JPG"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:data]];

[body appendData:[[NSString stringWithFormat:@"--%@--", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用OneDrive REST API将文件上传到OneDrive?

来自分类Dev

使用Python API将图片上传到Facebook

来自分类Dev

使用Drive API将图片上传到Google Drive

来自分类Dev

如何使用OneDrive API将文件上传到OneDrive上的共享文件夹中?

来自分类Dev

使用Python将图片上传到instagram

来自分类Dev

使用Jquery将图片上传到cloudinary?

来自分类Dev

使用 .load() 将图片上传到 div

来自分类Dev

使用OneDrive File Picker API将文件上传到默认文件夹

来自分类Dev

使用OneDrive iOS SDK将图像上传到OneDrive中的文件夹

来自分类Dev

无法使用php API将图片上传到Android应用上的服务器

来自分类Dev

使用 REST API 将视频上传到 Youtube,无需 iOS SDK

来自分类Dev

将图片从Library Photos iOS上传到cakephp

来自分类Dev

使用R将CSV文件上传到REST API

来自分类Dev

使用REST API将图像上传到Twitter

来自分类Dev

使用REST API将文件上传到Firebase存储

来自分类Dev

使用R将CSV文件上传到REST API

来自分类Dev

如何使用OneDrive SDK将OneDrive上的文件夹/文件上传到Windows 10 UWP

来自分类Dev

使用PyDrive将图片上传到Google云端硬盘

来自分类Dev

如何使用laravel将图片上传到databae?

来自分类Dev

使用javascript将图片从url上传到托管网站

来自分类Dev

Rails-使用URL将图片上传到Facebook

来自分类Dev

使用PHP将图片上传到文件夹

来自分类Dev

尝试从iOS将文件上传到OneDrive。我的要求出了什么问题?

来自分类Dev

无法使用图片的直接网址将图片上传到S3存储桶

来自分类Dev

如何使用php将文件从我的网站上传到我的个人onedrive帐户?

来自分类Dev

使用BITS协议将文件上传到OneDrive时出现400错误

来自分类Dev

如何使用 PHP-Curl 将大文件上传到 Onedrive

来自分类Dev

如何在C#中使用Microsoft Graph Api上传到OneDrive

来自分类Dev

如何通过ActiveResource / REST API将文件上传到Redmine?

Related 相关文章

  1. 1

    如何使用OneDrive REST API将文件上传到OneDrive?

  2. 2

    使用Python API将图片上传到Facebook

  3. 3

    使用Drive API将图片上传到Google Drive

  4. 4

    如何使用OneDrive API将文件上传到OneDrive上的共享文件夹中?

  5. 5

    使用Python将图片上传到instagram

  6. 6

    使用Jquery将图片上传到cloudinary?

  7. 7

    使用 .load() 将图片上传到 div

  8. 8

    使用OneDrive File Picker API将文件上传到默认文件夹

  9. 9

    使用OneDrive iOS SDK将图像上传到OneDrive中的文件夹

  10. 10

    无法使用php API将图片上传到Android应用上的服务器

  11. 11

    使用 REST API 将视频上传到 Youtube,无需 iOS SDK

  12. 12

    将图片从Library Photos iOS上传到cakephp

  13. 13

    使用R将CSV文件上传到REST API

  14. 14

    使用REST API将图像上传到Twitter

  15. 15

    使用REST API将文件上传到Firebase存储

  16. 16

    使用R将CSV文件上传到REST API

  17. 17

    如何使用OneDrive SDK将OneDrive上的文件夹/文件上传到Windows 10 UWP

  18. 18

    使用PyDrive将图片上传到Google云端硬盘

  19. 19

    如何使用laravel将图片上传到databae?

  20. 20

    使用javascript将图片从url上传到托管网站

  21. 21

    Rails-使用URL将图片上传到Facebook

  22. 22

    使用PHP将图片上传到文件夹

  23. 23

    尝试从iOS将文件上传到OneDrive。我的要求出了什么问题?

  24. 24

    无法使用图片的直接网址将图片上传到S3存储桶

  25. 25

    如何使用php将文件从我的网站上传到我的个人onedrive帐户?

  26. 26

    使用BITS协议将文件上传到OneDrive时出现400错误

  27. 27

    如何使用 PHP-Curl 将大文件上传到 Onedrive

  28. 28

    如何在C#中使用Microsoft Graph Api上传到OneDrive

  29. 29

    如何通过ActiveResource / REST API将文件上传到Redmine?

热门标签

归档