0

Salesforce Chatter REST APIのドキュメントを読み、c#でコードの実装を開始しました。次のコードを参照してください。

System.Net.WebRequest req = System.Net.WebRequest.Create(URI);
        req.Method = "POST";
        req.Headers.Add("Authorization: OAuth " + accessToken);
        req.ContentType = "application/x-www-form-urlencoded";
        string par = 
               "fileName=" + fileName +
            "&feedItemFileUpload="                
           + @"D:\\MyFiles\\NewTextDocument.txt" +                  
                     "&desc=" + desc+
                     "&text=" + text;

        byte[] byteArray = Encoding.UTF8.GetBytes(par);
        req.ContentLength = byteArray.Length;
        Stream dataStream = req.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();

        System.Net.WebResponse resp = req.GetResponse();

応答時にgettigエラーが発生しまし たリモートサーバーがエラーを返しました:(400)不正な要求。

エラーの応答が表示された場合、次のメッセージが表示されます。

アップロードするファイルを指定してください。ファイルへのパスを入力するか、[参照]ボタンを使用してローカルファイルシステムでファイルを見つけます。

ファイルのパスと名前はすでに定義しています。パス文字列の前に@記号を付けて、または付けずに試しましたが、同じエラーが発生します。足りないものがあれば教えてください。

4

1 に答える 1

2

Fiddlerを使用して、何が起こっているかを簡単に確認できます。

fileNamefeedItemFileUploadが同じdescである単純なフォームを投稿しています。textつまり、単純な単純なテキストです。

あなたがする必要があるのは、ファイルをストリームとして送信することです。

ハンゼルマンのコードを使用していることがわかりますが、これはテキストパラメータのみです。

ファイルに使用する方法の詳細については、この回答を参照してください

HTTPWebrequest(multipart / form-data)を使用してファイルをアップロードする

于 2011-09-05T07:20:23.260 に答える