HTTP Post с Scala и рассылкой? - PullRequest
       24

HTTP Post с Scala и рассылкой?

1 голос
/ 14 февраля 2012

Я хочу написать функцию для загрузки фотографий на 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) } </p>

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

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

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

Спасибо, Feras

1 Ответ

1 голос
/ 14 февраля 2012

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...