Got ProtocolError when Sending SOAP requests

I was trying to send a SOAP request to an ancient banking server, firstly I tried with Postman and it returns whatever I want.
Then I tried to send requests from pure python 3.8.3 with requests, `headers = {"content-type" : "text/xml"}` and using `response = requests.post(url, data = body, headers = headers)
`, I got
```
Traceback (most recent call last):
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/site-packages/urllib3/connectionpool.py", line 670, in urlopen
    httplib_response = self._make_request(
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/site-packages/urllib3/connectionpool.py", line 426, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/site-packages/urllib3/connectionpool.py", line 421, in _make_request
    httplib_response = conn.getresponse()
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/http/client.py", line 1332, in getresponse
    response.begin()
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/http/client.py", line 303, in begin
    version, status, reason = self._read_status()
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/http/client.py", line 272, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/site-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/site-packages/urllib3/connectionpool.py", line 724, in urlopen
    retries = retries.increment(
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/site-packages/urllib3/util/retry.py", line 403, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/site-packages/urllib3/packages/six.py", line 734, in reraise
    raise value.with_traceback(tb)
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/site-packages/urllib3/connectionpool.py", line 670, in urlopen
    httplib_response = self._make_request(
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/site-packages/urllib3/connectionpool.py", line 426, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/site-packages/urllib3/connectionpool.py", line 421, in _make_request
    httplib_response = conn.getresponse()
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/http/client.py", line 1332, in getresponse
    response.begin()
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/http/client.py", line 303, in begin
    version, status, reason = self._read_status()
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/http/client.py", line 272, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/site-packages/requests/api.py", line 119, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/site-packages/requests/api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/site-packages/requests/sessions.py", line 530, in request
    resp = self.send(prep, **send_kwargs)
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/site-packages/requests/sessions.py", line 643, in send
    r = adapter.send(request, **kwargs)
  File "/Users/xmo/.pyenv/versions/3.8.3/lib/python3.8/site-packages/requests/adapters.py", line 498, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
```

I used the default setting of Postman and requests, only changed the `content-type` to `text/xml`. I have no idea how it get ProtocolError.

BTW that server also will return a default message if you send a GET request, so `response = requests.get(url, data = body, headers = headers)` will return the correct response same as what I can get from Postman or web browser.

It appears this server is intentionally killing the connection with Requests when it detects it being used, likely from the User-Agent or another fingerprinting mechanism. This is a common defense tactic for scraping tools and we generally don't provide guidance for trying to circumvent these mechanisms.