首页 > 解决方案 > Haskell - 使用 Haskell 上传文件(POST 方法)

问题描述

我想复制这个 curl 命令

curl --request POST \
'https://www.someapi.com/upload/textfile?id=someid' \
--header 'Authorization: someauthcode' \
--header 'Accept: application/json' \
--header 'Content-Type: appication/octet-stream' \
--data '{"owner":"name"}' \
--data @somefile.txt

我项目中的大部分编码都是使用 Servant DSL 完成的,所以我认为这样的东西应该是理想的解决方案

baseURL = BaseUrl Https "www.someapi.com" 443 ""

uploadAPI :: Proxy Upload                                                                                                    
uploadAPI = Proxy   

type Upload = "upload" :> ... :> ReqBody '[OctetStream] ByteString :> Post '[OctetStream] ()

uploadImage :: Proxy Upload
uploadImage = Proxy

但这不起作用。

所以我想问,最好的选择是什么?

编辑:忘记添加错误 -

• No instance for (MimeUnrender OctetStream ())                                                                              
    arising from a use of ‘client’                                                                                           
• In the expression: client uploadAPI                                                                                        
  In an equation for ‘uploadImage’: uploadImage = client uploadAPI                                                           
   |      

标签: haskellservant

解决方案


推荐阅读