ipfs-shipyard / ipfs-shipyard/py-ipfs-http-client

🐛 : `StatusError: HTTPError: 405 Client Error: Method Not Allowed for url: http://localhost:5001/api/v0/version?stream-channels=true`

Open
#318 4 comments 0 reactions 0 assignees View on GitHub
bug difficulty:easy P1 - High
Dominant language
Python
Stars
685
Forks
200
PR merge metrics
No merged PRs in 30d

Description

Code :
```
import ipfshttpclient
client = ipfshttpclient.connect() # Connects to: /dns/localhost/tcp/5001/http
res = client.add('./test.txt')
res
# {'Hash': 'QmWxS5aNTFEc9XbMX1ASvLET1zrqEaTssqt33rVZQCQb22', 'Name': 'test.txt'}
```

Error :
```
---------------------------------------------------------------------------
HTTPError Traceback (most recent call last)
File ~/.local/lib/python3.11/site-packages/ipfshttpclient/http.py:266, in HTTPClient._do_raise_for_status(self, response)
265 try:
--> 266 response.raise_for_status()
267 except requests.exceptions.HTTPError as error:

File /usr/lib/python3/dist-packages/requests/models.py:1021, in Response.raise_for_status(self)
1020 if http_error_msg:
-> 1021 raise HTTPError(http_error_msg, response=self)

HTTPError: 405 Client Error: Method Not Allowed for url: http://localhost:5001/api/v0/version?stream-channels=true

The above exception was the direct cause of the following exception:

StatusError Traceback (most recent call last)
Cell In[1], line 2
1 import ipfshttpclient
----> 2 client = ipfshttpclient.connect() # Connects to: /dns/localhost/tcp/5001/http
3 res = client.add('./test.txt')
4 res

File ~/.local/lib/python3.11/site-packages/ipfshttpclient/client/__init__.py:101, in connect(addr, base, chunk_size, session, **defaults)
98 client = Client(addr, base, chunk_size, session, **defaults)
100 # Query version number from daemon and validate it
--> 101 version_str = client.version()["Version"]
102 assert_version(version_str)
104 # Apply workarounds based on daemon version

File ~/.local/lib/python3.11/site-packages/ipfshttpclient/client/base.py:15, in returns_single_item..wrapper(*args, **kwargs)
13 @functools.wraps(func)
14 def wrapper(*args, **kwargs):
---> 15 result = func(*args, **kwargs)
16 if isinstance(result, list):
17 if len(result) != 1:

File ~/.local/lib/python3.11/site-packages/ipfshttpclient/client/miscellaneous.py:204, in Base.version(self, **kwargs)
189 @base.returns_single_item
190 def version(self, **kwargs):
191 """Returns the software version of the currently connected node.
192
193 .. code-block:: python
(...)
202 Daemon and system version information
203 """
--> 204 return self._client.request('/version', decoder='json', **kwargs)

File ~/.local/lib/python3.11/site-packages/ipfshttpclient/http.py:51, in pass_defaults..wrapper(self, *args, **kwargs)
49 merged = utils.deep_update(merged, self.defaults)
50 merged = utils.deep_update(merged, kwargs)
---> 51 return func(self, *args, **merged)

File ~/.local/lib/python3.11/site-packages/ipfshttpclient/http.py:385, in HTTPClient.request(self, path, args, files, opts, stream, data, decoder, headers, username, password, timeout, offline, return_result)
381 stream = False
383 parser = encoding.get_encoding(decoder if decoder else "none")
--> 385 res = self._request(method, url, params, stream, files, headers,
386 username, password, data, timeout)
388 if not return_result:
389 return None

File ~/.local/lib/python3.11/site-packages/ipfshttpclient/http.py:307, in HTTPClient._request(self, method, url, params, stream, files, headers, username, password, data, timeout)
301 res = self._do_request(method, url, params=params, stream=stream,
302 files=files, headers=headers, auth=auth,
303 data=data, timeout=timeout)
305 # Raise exception for response status
306 # (optionally incorporating the response message, if applicable)
--> 307 self._do_raise_for_status(res)
309 return res

File ~/.local/lib/python3.11/site-packages/ipfshttpclient/http.py:286, in HTTPClient._do_raise_for_status(self, response)
284 six.raise_from(exceptions.ErrorResponse(msg, error), error)
285 else:
--> 286 six.raise_from(exceptions.StatusError(error), error)

File :3, in raise_from(value, from_value)

StatusError: HTTPError: 405 Client Error: Method Not Allowed for url: http://localhost:5001/api/v0/version?stream-channels=true
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.