Web Api GET故障排除400错误请求

时间:2014-08-20 21:21:54

标签: c# asp.net-web-api

在调用我在本地运行的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状态代码表示哪个错误。 http://msdn.microsoft.com/en-us/library/azure/dd179357.aspx

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

1 个答案:

答案 0 :(得分:1)

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