как легко получить данные ответа на сообщение https?

Я разрабатываю игрушечную программу, которая использует API сокращения URL-адресов Google. Чтобы сократить URL-адрес, вам необходимо отправить этот запрос:

POST https://www.googleapis.com/urlshortener/v1/url
Content-Type: application/json

{"longUrl": "http://www.google.com/"}

, и вы получите это в качестве ответа:

{
 "kind": "urlshortener#url",
 "id": "http://goo.gl/fbsS",
 "longUrl": "http://www.google.com/"
}

Сначала я использовал Network.HTTP, но обнаружил, что он не поддерживает HTTPS, а API Google поддерживает только HTTPS. Поэтому я перехожу к Network.Curl. Я обнаружил, что для HTTP GET

curlGetString :: URLString -> [CurlOption] -> IO (CurlCode, String)

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

curlPost :: URLString -> [String] -> IO ()

. Может ли кто-нибудь показать мне выход? Спасибо.

23
задан fuz 10 April 2011 в 15:15
поделиться