0

私はかなり長い間、Jira REST 応答を取得する方法を検索して取り組んできました。問題は、このコードに到達すると、BAD REQUEST または INTERNAL SERVER ERROR のいずれかの例外が発生することです。

HttpWebResponse response = request.GetResponse() as HttpWebResponse;

このコードを超えることはありません。代わりに、私は期待しています:

}
  "errorMessages": [],
  "errors": {
  "message": "An error occured ... "
  }
}

エラーメッセージまたは:

}
  "id": "11600",
  "key": "RP-547",
  "self": "http://jira.com/rest/api/2/issue/11600"
}

成功について。

私が見逃した、または誤解したことはありますか?期待される結果を得るにはどうすればよいですか?

追加情報:

HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.ContentType = "application/json";
request.Accept = "application/json";
request.Method = method; //POST
if (data != null)
{
    using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
    {
        writer.Write(data);
    }
}
string base64Credentials = GetEncodedCredentials();
request.Headers.Add("Authorization", "Basic " + base64Credentials);
string result = string.Empty;
HttpWebResponse response = request.GetResponse() as HttpWebResponse; //breaks here
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
    result = reader.ReadToEnd();
}
4

1 に答える 1

0

HttpWebRequest は、200 以外の http 応答に対して例外を生成します。catch 句でエラー応答を処理する必要があります。

ヘルプページから:

注 WebException がスローされた場合は、例外の Response および Status プロパティを使用して、サーバーからの応答を判別します。

この質問も参照してください

または、.Net 4.5 を使用している場合は、WebRequest の代わりに HttpClient を使用できます。

于 2013-07-23T02:57:07.387 に答える