2

ユーザーがバグを報告してファイルを添付できるASP.netアプリケーションがあります。バグとその詳細および添付ファイルをFogBugzに保存する必要があります。添付ファイル部分以外はなんとか作成できました。

これが私のコードです:

private void NewCaseWithFile()

    {
        string fbUrl = "https://test.fogbugz.com/api.asp";
        string fbToken = logInFogBugz();
        string param = "";


        param += "cmd=new";
        param += "&token=" + fbToken;


        param += "&sTags=" + "OnlineService,";
        param += "&sTitle=" + "Testing";

        param += "&sEvent=" + "This case is being created from Visual Studio";
        param += "&nFileCount=" + "1";
        param += "&File1=" + "Picture.png";


        HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(fbUrl + "?" + param);
        httpWebRequest.Method = WebRequestMethods.Http.Post;
        httpWebRequest.ContentType = "multipart/form-data";

        httpWebRequest.Accept = "application/xml";
        httpWebRequest.ContentLength = 0;

        HttpWebResponse response = (HttpWebResponse)httpWebRequest.GetResponse();
        StreamReader streamReader = new StreamReader(response.GetResponseStream());
        XDocument doc = XDocument.Load(streamReader);
    }

「ケースの編集」のすべての手順を試しましたが、役に立ちませんでした。実際、ファイル1、ファイル2とは何か、そしてそれらをFogBugzに送信する方法がわかりません。

誰かがこれを手伝ってくれますか?どうもありがとう!

4

1 に答える 1

0

file1 は multipart/form-data 投稿の本文で指定する必要があります (クエリ文字列パラメーターとしてではありません)。

実際には、ファイル内のすべてのバイトを指定する必要があります。

fogbugz.stackexchange.comに回答があり、すべての部分を処理するC# FogBugz API ラッパーもあります。

投稿の本文のフォーム部分は次のようになります

--sdfjdsjsdflk SOME BOUNDARY--
Content-Disposition: form-data; name="File1"; filename="foo.jpg"
Content-Transfer-Encoding: base64
Content-Type: image/png

slfkajdflksjflajfdj
sldfjsd;aljfds
these are actual data bytes from the foo.jpg file
slfkjdsfljds
sdflajsdfs

または、例のあるRFCを指すこの質問を見ることができます。

于 2013-06-26T16:55:22.147 に答える