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 回答