c# - 使用 Jira 创建问题
问题描述
我正在制作一个应用程序,用户可以在其中发布问题等等。我可以使用基本身份验证通过 Postman 发布问题并发布此原始应用程序/json
更新 我已经取得了进展,使用这种方法我通过了基本的身份验证无效错误。但是...我仍然有 400 Bad request 错误。现在的代码是:
public async Task<string> PostIssueAsync(string username, string password)
{
string data = @"{
'fields': {
'project':
{
'key': 'TEST'
},
'summary': 'zfasf',
'description': 'Creating an issue while setting custom field values via projhect ',
'issuetype': {
'name': 'Fault'
}
}
}";
HttpClient client = new HttpClient();
client.BaseAddress = new System.Uri(Constants.JiraUrl + "rest/api/latest/issue");
var cred = GetEncodedCredentials(username, password);
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", cred);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent(data, Encoding.UTF8, "application/json");
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var response = client.PostAsync(client.BaseAddress, content).Result;
if (response.IsSuccessStatusCode)
{
}
else
{
var test = response.Content.ReadAsStringAsync().Result;
}
return "";
}
错误: 在 else 语句中,我使用 ReadAsStringAsync 来查看错误。错误是:"{"errorMessages":["Unexpected character (''' (code 39)): was expecting double-quote to start field name\n at [Source: org.apache.catalina.connector.CoyoteInputStream@ae77320 ; 行:2,列:7]"]}"
我认为它在数据文件中出错了。当我进一步时,我会更新。
解决方案
我认为您可能需要“Encoding.ASCII”部分而不是“Encoding.UTF8”。
也将其转换为字节数组可能会有所帮助。
这段代码对我有用。
System.Net.WebClient cli = new System.Net.WebClient();
string authInfo = My.Settings.username + ":" + My.Settings.password;
cli.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(authInfo)));
cli.Headers.Add("Content-Type", "application/json");
var bytes = Encoding.Default.GetBytes(jsonstringpayload);
webClient.UploadDataAsync("http://support.example.com:8080/rest/" + url, "POST", bytes);
推荐阅读
- vue.js - 如何使用 Sinon.js (vue) 存根/模拟返回值以测试我的方法
- c# - 通过自定义检查器编辑字符串列表不起作用
- c - 双客户端套接字程序中的第二个连接很少不被服务器接受
- python - 在没有复数的地方无法将复数转换为浮点数
- json - 用于循环和 hasOwnProperty 的 ecma 脚本有一个奇怪的行为
- python - 在 OpenGL 的正交投影中使用纹理
- git - 如何在初始(根)提交中编辑和推送更改?
- php - php数组值日期与今天的日期有效性比较计数
- video-streaming - 添加 ICE 候选者失败:OperationError:无法在“RTCPeerConnection”上执行“addIceCandidate”:处理 ICE 候选者时出错
- c++ - 使用 unique_ptr 并返回引用,或者我应该使用 shared_ptr 并在需要时制作副本