2013-03-09 4 views
1

Мой разработчик пытается POST изображение на его веб-службы, как это:POST base64 данные в URL

http://consec.dev.domain.com/Services/ActivityService.svc/SubmitImage?userId=8D428BF6-51F0-43F6-947D-7E19A6A7F4BD&fileName=feels-bad.png&fileContent=iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg== 

это base64 кодированное изображение (это один случается красная точка, но образы, которые мы будет использовать гораздо больше)

Когда он пытается запостить он получает:

HTTP Error 414. The request URL is too long. 

он говорит мне его, потому что моя конфигурация IIS неправильно. Я рассказываю ему его код. Может ли кто-то пролить свет на это или указать нам в направлении, чтобы начать находить ответы? спасибо

+0

Он посылает невероятно большой объем данных по параметрам GET, что является плохой идеей. Возможно, это можно будет исправить, изменив конфигурацию IIS, но даже лучшим решением было бы на самом деле ПОСЛАТЬ данные в первую очередь (чего он не делает). –

+0

Это то, что я думал. Hes говорит мне, что я меняю его назад и вперед между POST и GET, но я все еще вижу это как URL. Таким образом, он всегда проходит через GET, если данные base64 находятся в URL-адресе, даже если он говорит, что он его POSTing, правильно? –

+1

Вот что говорит URL (и ошибка 414), да. Ему нужно получить эти данные из строки запроса –

ответ

2

Не указывайте POST данные в URL-адресе, воспользуйтесь телом сообщения и отправьте его туда. Это единственный способ получить длинный объем данных.

0

Его код неправильный. Вот почему HTTP поддерживает запросы POST.

Помните, что с запросом POST вы все равно можете поместить данные в URL-адрес. Чтобы сделать правильный POST, вы должны создать URL-адрес, чтобы определить, где отправлять сообщения, и поместить в тело запроса данные, которые вы хотите, POST.

Пример GET:

GET /some/place.php?var1=value 

Пример POST:

POST /some/place.php 

var1=value 

Тем не менее, это действительно сделать это:

POST /some/place.php?var1=value 

var2=value2 

(эти примеры пропущены для ясности, вам также необходимо отправить некоторые заголовки в POST)

0

Во-первых, это сообщение, а не сообщение http. Во-вторых, ошибка является возвратом веб-сервера. Но это плохой дизайн? Если на самом деле это кнопка формы, которая отправляет поля, используя post raher, чем построенный clickable get url

+0

Я думал, что это было ПОЛУЧЕНИЕ, хотя ГЭС рассказывала мне о своей POST. Ошибка, безусловно, возвращается веб-сервером. Мы будем отправлять изображение, используя кнопку отправки, а не URL-адрес, который можно щелкнуть. –

Смежные вопросы