Как мы реализуем сообщение curl в pharo

У меня есть curl post для реализации в pharo, но, похоже, не так много в плане объяснения того, как это сделать. Я видел несколько примеров, но они гораздо проще, чем мне нужно. Я бы сделал это в гостинице Pharos?

$ curl 'https://url_server' \
-X POST \
-H 'key: MY PASSWORD' \
-H 'Content-Type: application/json' \
-d \
'{
  "HEADER": "FOO",
  "DESK": "POO",
  "FORWARDTO": "another_url"
}'

Я знаю, что это похоже на публикацию с использованием Znclient следующим образом:

 ZnClient new
    url: 'url_server';
    entity: (ZnEntity 
            with:'{"HEADER": "FOO", 
                   "DESK": "POO",
                   "FORWARDTO": "another_url"}'
            type: ZnMimeType applicationJson
            );
        post.

Однако где ключ идет к использованию этого синтаксиса?

1 ответ

Решение

Похоже, вы ищете способ установить поле заголовка HTTP для вашего запроса в Zinc?

Пытаться ZnClient:

headerAt: key put: value
    "Set key equals value in the HTTP header of the current request"

Ваш код может выглядеть так:

ZnClient new
    url: 'yourURL';
    headerAt: 'headerKey' put: 'headerValue'; 
    entity: (ZnEntity 
        with:'{"yourJSON": "Content"}'
        type: ZnMimeType applicationJson);
    post.

У Zinc также есть приятная особенность, которая показывает вам вызов командной строки curl, эквивалентный текущему запросу. Таким образом, вы можете сравнить с линией завитка, которую вы имели в виду. Просто распечатайте:

ZnClient new
    url: 'yourURL';
    headerAt: 'headerKey' put: 'headerValue'; 
    entity: (ZnEntity 
        with:'{"yourJSON": "Content"}'
        type: ZnMimeType applicationJson);
    method: #POST;
    curl.

Хорошую документацию по использованию Zinc HTTP в качестве клиента вы найдете в книге Enterprise Pharo.

Другие вопросы по тегам