c# - 通过 REST API 向 Fortify 问题添加评论会导致内容编码错误
问题描述
我正在尝试对 Fortify 中的问题添加评论。当我发布我认为正确的 JSON 时,我收到响应“{“message”:“内容格式不正确(预期的应用程序/json;charset=utf-8)。”,“responseCode”:400,“errorCode” :-20209}"
但是,如果我使用 Fiddler 检查我正在发布的消息并接收到适当的标头,则似乎就位。什么次要问题可能导致引发此异常?
强化 v18.10.0187
.NET v4.6.2
Newtonsoft.Json v9.0.0
public static string PostCommentIssue(FortifyComment fc)
{
var content = JsonConvert.SerializeObject(fc);
var postUri = String.Format(Configuration.FortifyCommentsUri, fc.data.issueId);
return WebServiceHelper.PostMessage(postUri, content);
}
public static string PostMessage(string url, string content)
{
HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post, url);
requestMessage.Headers.Add("Authorization", Configuration.FortifyAuthorization.ToHeader());
requestMessage.Content = new StringContent(content, Encoding.UTF8, JsonMediaTypeFormatter.DefaultMediaType.MediaType);
HttpResponseMessage hrm = HttpClient.SendAsync(requestMessage).Result;
hrm.EnsureSuccessStatusCode();
HttpContent hc = hrm.Content;
return hc.ReadAsStringAsync().Result;
}
FortifyComment 只是一个包含评论基本元素的对象。它基于对查询给出的 Fortify 响应(因此是内部数据元素)。
使用
FortifyComment fc = new FortifyComment();
fc.data.issueId = defect.id;
fc.data.comment = String.Format("TFS #{0}.", tfsNumber);
FortifyHelper.PostCommentIssue(fc);
解决方案
推荐阅读
- javascript - 用 jQuery 填充 DropDownList
- amazon-web-services - 如何使用 AWS Cognito 限制对 S3 文件的访问?
- .net - 通过 VB .net 中的 Datagridview.SelectedRows 修改数据集
- python - 在 concurrent.futures 中使用此功能时不起作用
- iis - MSDEPLOY 得到 ERROR_USER_UNAUTHORIZED。我在哪里可以找到原因?
- .htaccess - htaccess URL 重写 domain.com.php 页面格式?
- android - 如何为 API 级别 20 以上的 Android 设备请求 AudioFocus?
- java - 你怎么写这个 s = ( (n % 2 ) == 0 ? "0" : "1") +s; 作为 if-else 语句?
- terminal - 为什么每次我想在终端中运行命令脚本时都必须运行'source .zsh'?
- ios - SwiftUI 视图内容布局意外弹出/跳转出现?