HTTP-сообщение со scala и Dispatch?

Я хочу написать функцию для загрузки фотографий на flickr как http://www.flickr.com/services/api/upload.api.html. Я написал следующий код:

val http = new Http with thread.Safety
val uploadEndPoint = :/("api.flickr.com") / "services" / "upload"

затем я подписываю метод с помощью отправки

def signUploadRequest(userParams: Map[String, String], accessToken: Token, verifier: String): Map[String, String] = {
    var map = userParams
    map += "api_key" -> consumerKey
    sign("", uploadEndPoint.toString, userParams, consumer, Some(accessToken), Some(verifier), Some(OAuth.oob))
  }

Затем я вызываю следующий метод:

def sendUploadRequest(reqParms: Map[String, String]) = { http(uploadEndPoint.POST ‹:‹ reqParms as_str) }

но я получил следующую ошибку:

<rsp stat="fail">
    <err code="100" msg="Invalid API Key (Key has invalid format)" />
</rsp>

Я использую ту же процедуру для запросов, и она отлично работает. В чем проблема с Почтой?

Спасибо, Ферас.


person Feras Odeh    schedule 14.02.2012    source источник


Ответы (1)


Я не знаю этого flickr api, но разве карта не должна передаваться как тело запроса?

Еще одно замечание: мол, фотография не может быть частью подписи (на всякий случай, если userParams ее содержит).

Итак, если вы должны использовать тело сообщения вместо размещения карты в заголовках (что делает <:<):

def sendUploadRequest(reqParms: Map[String, String]) = { http(uploadEndPoint << reqParms as_str) }

<< преобразует запрос в публикацию, используя данную карту в качестве полезной нагрузки. Обратите внимание, что использование POST сделает тело карты пустым.

person Andy Petrella    schedule 14.02.2012
comment
Я не использую фотографию в подписи, и когда я изменил глагол на ‹‹, я получил следующую ошибку: Ошибка аутентификации: невозможно ответить ни на один из этих вызовов: {} Исключение в основной рассылке потока.StatusCode: Неожиданный код ответа: 401 oauth_problem=signature_invalid&debug_sbs=POST - person Feras Odeh; 14.02.2012
comment
Должен ли я выбрать другого http-исполнителя для сообщения? - person Feras Odeh; 14.02.2012