Python3中,建立一个socket客户端向服务端发送json数据是报 unknown url type,为什么呢? 5

源码如下:importurllib.requestimportjsonimportsocketsend=socket.socket()ip_port=("127.0.0.... 源码如下:
import urllib.request
import json
import socket

send = socket.socket()
ip_port=("127.0.0.1",8080)
send.connect(ip_port)

data = {
"a":123,
"b":456
}
values = urllib.parse.urlencode(data).encode(encoding='UTF8')
headers = {'Content-Type': 'application/json'}
print(data)
print(values)
print(json.dumps(data))
print(json.dumps(data).encode())
request = urllib.request.Request(url=ip_port, headers=headers, data=json.dumps(data).encode())
response = urllib.request.urlopen(request)

执行时报错:ValueError: unknown url type: "('127.0.0.1', 8080)"
这个情况如何处理呢
展开
 我来答
pieryon
2019-03-19 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14410 获赞数:166872
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
参考这个客户端程序,我觉得是你的服务端有问题
import socket

HOST = '127.0.0.1' # 服务器的主机名或者 IP 地址
PORT = 65432 # 服务器使用的端口

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.sendall(b'Hello, world')
data = s.recv(1024)

print('Received', repr(data))

服务端写法
import socket

HOST = '127.0.0.1' # 标准的回环地址 (localhost)
PORT = 65432 # 监听的端口 (非系统级的端口: 大于 1023)

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
conn, addr = s.accept()
with conn:
print('Connected by', addr)
while True:
data = conn.recv(1024)
if not data:
break
conn.sendall(data)
匿名用户

2019-03-18
展开全部
换一个写法试一下,把ipport去掉,connect(("127.0.0.1",8080))
报错显示是值不对,他需要的是个元组,而你给的貌似是一个字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式