1

我的类库需要一个到 SkyDrive 的接口。

(我能否快速说一下,如果完全不充分,我认为 Microsoft 以在线技术文档的方式提供的在 SkyDrive 上进行开发的方式完全不够,恕我直言。)

目前,我的库可以使用 Microsoft.Live API 和 Socket 类的组合登录、下载文件和删除文件。(我不能使用高级套接字类,例如 HttpWebRequest 和 WebClient,所以我使用的是 Socket 类。)

但我坚持上传文件。

这是一个将文件发布到 SkyDrive 帐户的简单请求:

private const string API_SERVICE_URI = "https://apis.live.net/v5.0/";
private const string REST_DATA_BOUNDARY = "A300x";

StringBuilder sb = new StringBuilder();
sb.AppendFormat("POST {0}me/skydrive/files?access_token={1}\r\n",
    API_SERVICE_URI,
    _liveSession.AccessToken
);
sb.Append("\r\n");
sb.AppendFormat("Content-Type: multipart/form-data; boundary={0}\r\n", 
    REST_DATA_BOUNDARY
);
sb.Append("\r\n");
sb.AppendFormat("--{0}\r\n", REST_DATA_BOUNDARY);
sb.AppendFormat("Content-Disposition: form-data; name=\"file\"; filename=\"test.txt\"\r\n");
sb.AppendFormat("Content-Type: application/octet-stream\r\n");
sb.Append("\r\n");
sb.Append("abcdefg\r\n");
sb.AppendFormat("--{0}--\r\n", REST_DATA_BOUNDARY);

当我通过连接的套接字发送它时,没有任何反应。无回复。没有错误。没有什么。

我按原样将其发送到 Socket 上是否正确?我只是将整个内容序列化为 ASCII 并发送它。我是否打算包含一些身份验证或 cookie 值,因为它通过 SSL 进行?这就是为什么什么都没有回来的原因吗?

4

0 回答 0