WebApi GET故障排除400 BadRequest

本文关键字:BadRequest 排除 故障 GET WebApi | 更新日期: 2023-09-27 18:19:03

当调用本地运行的webapi时,我在requestUri中传递数据作为base64编码的Json的序列化对象,但每次都获得StatusCode 400。

我如何修复我的请求?

public class VerifyController : ApiController
{
    // GET: api/Verify/jsonStringAddressOriginal
    public AddressResult Get(string base64AddressOriginal)

调用者:

var requestUri = string.Format("api/verify/{0}", base64address);
Console.WriteLine("requestUri:'n{0}", requestUri);
HttpResponseMessage response = client.GetAsync(requestUri).Result;

requestUri:

api/verify/eyJDb21wYW55IjoiIiwiQWRkcmVzcyI6Ijc3NTAgQmVsZm9ydCBQYXJrd2F5IDIwMCIsI
kFkZHJlc3MyIjoiIiwiU3VpdGUiOiIiLCJDaXR5IjoiSmFja3NvbnZpbGxlIiwiU3RhdGUiOiJGTCIsI
lppcCI6IjMyMjU2IiwiUGx1czQiOiIiLCJMYXN0TGluZSI6IiIsIkNvdW50cnlDb2RlIjoiIiwiVXJiY
W5pemF0aW9uIjoiIiwiTGFzdE5hbWUiOiIiLCJQYXJzZWRBZGRyZXNzUmFuZ2UiOiIiLCJQYXJzZWRQc
mVEaXJlY3Rpb24iOiIiLCJQYXJzZWRTdHJlZXROYW1lIjoiIiwiUGFyc2VkU3VmZml4IjoiIiwiUGFyc
2VkUG9zdERpcmVjdGlvbiI6IiIsIlBhcnNlZFN1aXRlTmFtZSI6IiIsIlBhcnNlZFN1aXRlUmFuZ2UiO
iIiLCJQYXJzZWRSb3V0ZVNlcnZpY2UiOiIiLCJQYXJzZWRMb2NrQm94IjoiIiwiUGFyc2VkRGVsaXZlc
nlJbnN0YWxsYXRpb24iOiIifQ==
Error code: BadRequest
Reason: Bad Request

我认为这是一个畸形的请求,但我不知道是什么畸形的请求。响应对象似乎没有进一步的属性详细说明400 Status Code表示哪个错误。http://msdn.microsoft.com/en-us/library/azure/dd179357.aspx

这是我的第一个WebApi,所以在回答时,不要对我的配置做任何假设。VS2013 update 3, Web Api,使用HttpClient作为调用者

WebApi GET故障排除400 BadRequest

我没有计算URI中的字符数,但是非常长的URI(> 2000个字符)可能会导致问题。尝试将此作为POST请求,并将base64数据放入请求体中。