Remote server return an error: (500) Internal server error

Remote server return an error: (500) Internal server error

我正在尝试从 JIRA 云中获取问题,如下所示:

 public List<Issue> GetIssues(
        string jql,
        List<string> fields = null,
        int startAt = 0,
        int maxResult = 50)
    {
        fields = fields ?? new List<string> { "summary", "status", "assignee" };

        SearchRequest request = new SearchRequest();
        request.Fields = fields;
        request.JQL = jql;
        request.MaxResults = maxResult;
        request.StartAt = startAt;

        string data = JsonConvert.SerializeObject(request);

这给出 "data" 如下:

{"jql":"project = CI","startAt":0,"maxResults":50,"fields":["summary","status","assignee"]}

然后,我调用 运行 查询如下:

string result = runQuery(JiraResource.search, data, "POST");

//运行查询定义:

 public string runQuery(
        JiraResource resource,
        string argument = null,
        string data = null,
        string method = "GET")
    {
        string url = string.Format("{0}{1}",str_baseURL,resource.ToString()); //This is my URL : https://clientname.atlassian.net/rest/api/2/search

       // string url = string.Format("{0}{1}/", str_baseURL);
        if(argument != null) // as my argument is not null here , so my url is now below
        {

            url = string.Format("{0}{1}/",url,argument); //https://clientname.atlassian.net/rest/api/2/search{"jql":"project =               CI","startAt":0,"maxResults":50,"fields":["summary","status","assignee"]}/
        }
        HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
        request.ContentType = "application/json";
        request.Method = method;
        /*if (data != null) //for time being commented it, becoz of error
        {
            using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
            {
                writer.Write(data);
            }
        }*/
        string base64Credentials = GetEncodedCredentials();
        request.Headers.Add("Authorization", "Basic " + base64Credentials);
        HttpWebResponse response = request.GetResponse() as HttpWebResponse; //Here Im getting "Remote server returned an error(500) Internal server error"
        string result = string.Empty;
        using (StreamReader reader = new StreamReader(response.GetResponseStream()))
        { result = reader.ReadToEnd(); }

        return result;
    }

我做错了什么?请注意,我的其他方法如 "GetProjects" 工作正常,我得到 JSON。请指导我。

如果您正在向 Atlassian 托管的服务器发出请求(看起来您就是这样),则 500 Internal Server Error 响应表示 Atlassian 端有问题,而不是您的问题。我建议联系 Atlassian 寻求支持。

问题已解决:我是这样做的:

 string url = string.Format("{0}{1}", str_baseURL, resource.ToString());
        if (argument != null)
        {
            method = "POST";
            //url = string.Format("{0}{1}/", url, argument); 
        }
        else
        {
            method = "GET";
        }
        data = argument;
        HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
        request.ContentType = "application/json";
        request.Method = method;

这是 "when to use POST and when GET" 的问题。