2015-12-26 2 views
1

Я выкладываю на службу, используя спрейтеFormData преобразования в формат JSON

var authenticationPipeline: HttpRequest => Future[Authentication] = sendReceive ~> unmarshal[Authentication]

Я имею установку трубопровода, что ожидает возвращения типа аутентификации (случай класса) и распаковать это. Довольно прямо.

При создании запросов я пытаюсь использовать следующий шаблон.

val fD = FormData(Seq(
    "grant_type" -> "authorization_code", 
    "code" -> authorisation_code, 
    "redirect_uri" -> "http://www.example.com", 
    "client_id" -> apiClientId, 
    "client_secret" -> apiClientSecretKey 
)) 

Я отправляю это так.

authenticationPipeline(Post(oauthUrl, fD))

Вопрос заключается в том, что служба я отправляю к возвращает неподдерживаемый тип ошибки средств массовой информации, а при дальнейшем осмотре выглядит как средства массовой информации НТТР enitity в/тип контента в формате JSON и содержание является JSON строка.

У меня есть эта проблема, используя URLEncode и отправляя эту необработанную строку, вручную создав HTTP-запрос, теперь проблема в том, что я запутался с кодировкой, и это просто не очень чистый код. Наверное, я просто не знаю, почему это происходит почти неявно.

Следующие ссылки повлиявшие как я установить это, но не говоря уже о подобных проблем, https://groups.google.com/forum/#!topic/spray-user/JjA2LCLfib8 & Posting application/x-www-form-urlencoded using spray

Любые указатели на то, что я мог бы делать неправильно было бы оценено. Пожалуйста, дайте мне знать, если я опустил какую-либо важную информацию.

Заранее благодарен!

ответ

0

Проверяя мой код изолированно, я смог определить, что один из моих импортных ресурсов привел к неявному маршаллеру JSON. Будучи более конкретным с моим импортом, я смог преодолеть эту проблему. Надеюсь, это поможет кому-то в будущем!

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