urllib.error.HTTPError: Ошибка HTTP 404: не найдено - python - PullRequest
0 голосов
/ 01 августа 2020
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']))

Отслеживание (последний вызов последним): файл «C: / Users / AppData / Local / Programs / Python / Python37 / client.py», строка 54, в кавычках = json .loads (urllib.request.urlopen (QUERY.format (random.random ())). read ()) Файл "C: \ Users \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ urllib \ request. py ", строка 222, в urlopen return opener.open (url, data, timeout) File" C: \ Users \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ urllib \ request.py ", строка 531, в open response = meth (req, response) File "C: \ Users \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ urllib \ request.py", строка 641, в http_response 'http', запрос, ответ , code, msg, hdrs) Файл "C: \ Users \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ urllib \ request.py", строка 569, в ошибке result = self._call_chain (* args) Файл "C: \ Users \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ urllib \ request.py", строка 503, в _call_chain result = fun c (* args) File "C: \ Users \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ urllib \ request.py ", строка 649, в http_error_default поднять HTTPError (req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: Ошибка HTTP 404: не найдено

Я Ошибка с URL-адресом. Провел некоторое исследование и попытался выяснить, все еще не совсем уверен, почему клиентская часть выдает ошибку, а серверная часть работает нормально.

1 Ответ

0 голосов
/ 10 августа 2020

Это вызвано тем, что брандмауэр вашего компьютера блокирует порт 8080. Измените порт с 8080 на 8085 в файлах клиента и сервера.

В приведенном выше коде измените QUERY = "http://localhost: 8080 / query? Id = {} "To QUERY =" http://localhost: 8085 / query? Id = {} "

Точно так же в качестве номера порта в файле сервера должно быть 8080, измените это на 8085.

Другим решением было бы отключить брандмауэр, что не рекомендуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...