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);

接続されたソケットを介してこれを送信しても、何も起こりません。応答なし。エラーはありません。何もない。

これをそのままソケットに送信するのは正しいですか?全部をASCIIとしてシリアル化して送信しているだけです。SSLを経由するため、認証またはCookieの値を含めるつもりですか?だから何も戻ってこないのですか?

4

0 に答える 0