2015-02-08 2 views
1

Я пытаюсь отправить POST в API Smarty Streets, но ответ, который я получаю, - это некорректная полезная нагрузка. Я просмотрел документацию на сайте, и я думаю, что все правильно сформировано для отправки. Я даже использовал Fiddler, чтобы посмотреть, что я отправляю, и выглядит правильно, но должно быть что-то, что я не вижу. Я относительно новое программирование. Поэтому любая помощь будет оценена по достоинству.C# Smarty Streets POST-запрос

string url = Uri.EscapeUriString("http://api.smartystreets.com/street-address?auth-id=Id&auth-token=token"); 
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url); 

TestAddress json = new TestAddress(); 

json.street = "11 Phelan Ave, San Francisco, CA"; 

string jsoncvt = JsonConvert.SerializeObject(json); 
byte[] byteArray = Encoding.UTF8.GetBytes(jsoncvt); 
httpWebRequest.ContentLength = byteArray.Length; 
httpWebRequest.Host = "api.smartystreets.com"; 
httpWebRequest.ContentType = "application/json"; 
httpWebRequest.Accept= "application/json"; 
httpWebRequest.Method = "POST"; 
Stream dataStream = httpWebRequest.GetRequestStream(); 
dataStream.Write(byteArray, 0, byteArray.Length); 
dataStream.Close(); 
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
+2

Это может быть проблема здесь заключается в том, что API требует * массива * уличных входов (если вы используете полезную нагрузку JSON), в то время как этот запрос только отправка одного объекта. –

ответ

0

Как комментирует Джонатан Оливер, API SmartyStreets ожидает набор входных кандидатов. Просто измените сериализированную полезную нагрузку, чтобы быть коллекцией:

string jsoncvt = JsonConvert.SerializeObject(new TestAddress[] {json});