gpt4 book ai didi

python - 使用 pyCurl 发布问题

转载 作者:太空宇宙 更新时间:2023-11-03 12:51:46 25 4
gpt4 key购买 nike

我正在尝试使用 CURL 将文件发布到网络服务(这是我需要使用的,所以我不能采取扭曲或其他方式)。问题是,当使用 pyCurl 时,网络服务没有收到我发送的文件,就像文件底部评论的那样。我在 pyCurl 脚本中做错了什么?有什么想法吗?

非常感谢。

import pycurl
import os

headers = [ "Content-Type: text/xml; charset: UTF-8; " ]
url = "http://myurl/webservice.wsdl"
class FileReader:
def __init__(self, fp):
self.fp = fp
def read_callback(self, size):
text = self.fp.read(size)
text = text.replace('\n', '')
text = text.replace('\r', '')
text = text.replace('\t', '')
text = text.strip()
return text

c = pycurl.Curl()
filename = 'my.xml'
fh = FileReader(open(filename, 'r'))

filesize = os.path.getsize(filename)
c.setopt(c.URL, url)
c.setopt(c.POST, 1)
c.setopt(c.HTTPHEADER, headers)
c.setopt(c.READFUNCTION , fh.read_callback)
c.setopt(c.VERBOSE, 1)
c.setopt(c.HTTP_VERSION, c.CURL_HTTP_VERSION_1_0)
c.perform()
c.close()
# This is the curl command I'm using and it works
# curl -d @my.xml -0 "http://myurl/webservice.wsdl" -H "Content-Type: text/xml; charset=UTF-8"

最佳答案

PyCurl 似乎是一个孤立的项目。两年没更新了。我只是将命令行 curl 称为子进程。

import subprocess

def curl(*args):
curl_path = '/usr/bin/curl'
curl_list = [curl_path]
for arg in args:
# loop just in case we want to filter args in future.
curl_list.append(arg)
curl_result = subprocess.Popen(
curl_list,
stderr=subprocess.PIPE,
stdout=subprocess.PIPE).communicate()[0]
return curl_result

curl('-d', '@my.xml', '-0', "http://myurl/webservice.wsdl", '-H', "Content-Type: text/xml; charset=UTF-8")

关于python - 使用 pyCurl 发布问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4154306/

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