gpt4 book ai didi

wordpress - 来自 Network.HTTP.simpleHTTP 的 ErrorClosed 异常——尝试使用 haxr 通过 XML-RPC 上传图像

转载 作者:可可西里 更新时间:2023-11-01 15:14:22 25 4
gpt4 key购买 nike

我正在尝试使用 haxr 3000.8.5上传图片到WordPress使用 metaWeblog API 的博客——特别是 newMediaObject方法。

我已经让它适用于图像,已成功上传 PNG 和 JPG 格式的 20x20 图标。但是,当我尝试中等大小的图像(比如 300x300)时,我得到了一个 ErrorClosed 异常,大概来自 HTTP包(我做了一些源代码潜水,发现 haxr 最终调用了 Network.HTTP.simpleHTTP )。

谁能阐明为什么调用 simpleHTTP 可能因 ErrorClosed 而失败?也欢迎提出有关尝试的建议和潜在的解决方法。

这里是 full tcpdump output from a successful upload 的链接和 from an unsuccessful upload .

下面还显示了(经过清理的)代码,以备不时之需。

import           Network.XmlRpc.Client      (remote)
import Network.XmlRpc.Internals (Value(..), toValue)
import Data.Char (toLower)
import System.FilePath (takeFileName, takeExtension)
import qualified Data.ByteString.Char8 as B
import Data.Functor ((<$>))

uploadMediaObject :: FilePath -> IO Value
uploadMediaObject file = do
media <- mkMediaObject file
remote "http://someblog.wordpress.com/xmlrpc.php" "metaWeblog.newMediaObject"
"default" "username" "password" media

-- Create the required struct representing the image.
mkMediaObject :: FilePath -> IO Value
mkMediaObject filePath = do
bits <- B.unpack <$> B.readFile filePath
return $ ValueStruct
[ ("name", toValue fileName)
, ("type", toValue fileType)
, ("bits", ValueBase64 bits)
]
where
fileName = takeFileName filePath
fileType = case (map toLower . drop 1 . takeExtension) fileName of
"png" -> "image/png"
"jpg" -> "image/jpeg"
"jpeg" -> "image/jpeg"
"gif" -> "image/gif"

main = do
v <- uploadMediaObject "images/puppy.png"
print v

最佳答案

21:59:56.813021 IP 192.168.1.148.39571 > ..http: Flags [.]
22:00:01.922598 IP ..http > 192.168.1.148.39571: Flags [F.]

连接在 3-4 秒超时后被服务器关闭,因为客户端没有发送任何数据,以防止 slowloris 和类似的 ddos​​ 攻击。 (F为FIN标志,关闭双向连接的一个方向)。

服务器不等待客户端关闭连接(等待eof/0 == recv(fd))而是使用close()系统调用;如果服务器上的内核接收到更多数据,它将使用 [R]eset 数据包进行响应,正如您在转储末尾看到的那样。

我猜是客户端先打开http连接然后准备数据耗时太长

关于wordpress - 来自 Network.HTTP.simpleHTTP 的 ErrorClosed 异常——尝试使用 haxr 通过 XML-RPC 上传图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11277788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com