我有一个允许用户报告错误和附加文件的ASP.net应用程序。bug连同它的细节和附件应该保存在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。
有谁能帮我一下吗?很多谢谢!File1应该在multipart/form-data post的正文中指定(而不是作为querystring参数)。
您实际上必须指定文件中的所有字节。
在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的例子。