Когда я звоню на мой webapi, работающий локально, я передаю данные в requestUri как кодированный J64 из кодирования base64 моего сериализованного объекта, но получая 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 update 3, Web Api, используя HttpClient в качестве вызывающего.
Я не подсчитывал количество символов в вашем URI, но очень длинные URI (> 2000 символов) могут вызвать проблемы. Попробуйте сделать запрос POST и поместить данные base64 в тело запроса.