当前位置: 首页 > 知识库问答 >
问题:

urllib。错误HTTPError:HTTP错误404:未找到-python

晏炳
2023-03-14
import urllib.request
import time
import json
import random

QUERY = "http://localhost:8080/query?id={}"
N = 500

def getDataPoint(quote):
    stock = quote['stock']
    bid_price = float(quote['top_bid']['price'])
    ask_price = float(quote['top_ask']['price'])
    price = (bid_price + ask_price)/2
    return stock, bid_price, ask_price, price

def getRatio(price_a, price_b):
    if(price_b==0):
        return
    return price_a/price_b

if __name__ == "__main__":
    for _ in range(N):
        quotes = json.loads(urllib.request.urlopen( 
        QUERY.format(random.random())).read())
        prices = {}
        for quote in quotes:
            stock, bid_price, ask_price, price = getDataPoint(quote)
            prices[stock] = price
            print ("Quoted %s at (bid:%s, ask:%s, price:%s)" % (stock, 
            bid_price, ask_price, price))

        print ("Ratio %s" % getRatio(prices['ABC'], prices['DEF']))

Traceback(最近的最后一次调用):文件"C:/用户/AppData/本地/程序/Python/Python37/client.py",第54行,引号=json.loads(urllib.request.urlopen(QUERY.格式(random.random())). read())文件"C:\用户\AppData\本地\程序\Python\Python37\lib\urllib\request.py",第222行,在urlopen返回opener.open(url, data, timeout)文件"C:\用户\AppData\本地\程序\Python\Python37\lib\urllib\request.py",第531行,在打开响应=meth(req,响应)文件"C:\用户\AppData\本地\程序\Python\Python37\lib\urllib\request.py",第641行,在“http_response文本超传输协议”,请求,响应,代码,g,mshdrs)文件"C:\用户\AppData\本地\程序\Python\Python37\lib\urlli._call_chain(*args)文件"C:\用户\AppData\本地\程序\Python\Python37\lib\urllib\request.py",第503行,在_call_chain结果=func(*args)文件"C:\用户\AppData\本地\程序\Python\Python37\lib\urllib\request.py",第649行,在http_error_default提出HTTPError(req.full_url,代码,msg,hdrs,fp)urllib.error.HTTPError:HTTP错误404:未找到

我的URL有错误。做了一些研究,试图弄清楚客户机部分出错而html" target="_blank">服务器部分工作正常的原因。

共有2个答案

齐宗清
2023-03-14

简单地说,您的服务器应用程序未在所述位置运行:http://localhost:8080/query

穆飞星
2023-03-14

这是由于您计算机的防火墙阻止了端口8080造成的。在客户机和服务器文件中,将端口从8080更改为8085。

在上面的代码中,将QUERY="http://localhost:8080/query?id={}"更改为QUERY="http://localhost:8085/query?id={}"

同样,服务器文件中应该有8080作为端口号,将其更改为8085。

另一种解决方案是禁用防火墙,这是不推荐的。

 类似资料:
  • 我正在尝试搜索亚马逊的产品广告,并使用botlenose来帮助我做到这一点。但是,我刚刚收到HTTP错误400。 其他一些重要信息: 我来自巴西,我的标签也来自亚马逊。这是个问题吗? 我确实检查了我的钥匙、秘密和标签,一切正常。我确实在StackOverflow上查看了其他一些问题,但对我来说没有任何效果。 当然,出于安全原因,我更改了密钥。 Traceback(最近一次调用最后一次):File"

  • 我使用角cli为我的Angular2应用程序。每当我尝试加载angular2/超文本传输协议在我的组件/服务没有错误显示在cli终端,但在我的浏览器的控制台它显示这- 收到http://localhost:4200/angular2/http404(未找到) 未处理的promise拒绝:错误:XHR错误(未找到404)加载http://localhost:4200/angular2/http在XM

  • 我得到下面的错误。我最近将更新为其最新版本,之后出现此错误。我不确定到底出了什么问题,我在谷歌上非常努力地寻找答案,因为我是一个新的角度类型的编程。 我尝试了以下步骤: 已尝试弃用返回,但运气不佳 尝试导入软件包,仍然没有成功 已尝试启动rc1,但运气不佳 你能告诉我实际的问题是什么,我应该如何解决这个问题? localhost/: 38错误:(SystemJS)XHR错误(404未找到)加载ht

  • 问题内容: 我的科尔多瓦版本是 5.0.0 将应用程序部署在设备上时,对于所有ajax请求都收到404错误。在网络浏览器上,它可以正常工作,但是在设备上部署时,相同的应用程序无法正常工作。 我尝试添加关注者来解决该问题,但没有帮助。 Config.xml AndriodManiest.xml 我还在index.html文件中添加了以下内容,但也没有任何区别。 这里的任何人还有另一个解决此问题的技巧

  • 我正在尝试(失败)设置一个简单的FastAPI项目,并使用uvicorn运行它。这是我的代码: 这是我从终端运行的内容: 如你所见,我找不到404。原因可能是什么?一些与网络相关的东西,可能是防火墙/vpn阻止此连接或其他什么?我是新来的。提前谢谢!

  • 问题内容: 我在Express中使用Socket.io。在我的项目中,我有一个登录页面和一个主页。成功登录后,我导航到localhost:3000 / home,收到此错误: 我没有对我(通过express创建的项目)进行任何修改。 index.js: 在我这样定义Socket.io中: 问题答案: 如果您运行的是Express 4,在我看来,您似乎缺少代码行: 这将启动您的Web服务器并将其设置