BX310 HTTP/1.1 400 Bad Request

Hi,
The project I’m working on at the moment has a BX310 and a HL78 module. Both modules are used to talk to a webserver but never at the same time. If WiFi is available, the device will try to use the BX310, otherwise the HL78 will be used instead (4G).

Communication with the server goes well through my HL78, using HTTP PUT requests.
But when I try the very same thing with the BX310, I always get a “HTTP/1.1 400 Bad Request” reply.
The process I follow is:
HL78
//Setup
AT+CGDCONT=1,“IP”,“telstra.m2m”
AT+KCNXCFG=1,“GPRS”,“telstra.m2m”
AT+KTCPCFG=1,0,[server_address],3000
+KTPCFG: 1

//Connection
AT+KTCPCNX=1
AT+KTCPSND=1,[size]
CONNECT
PUT /device/001/report HTTP/1.1
api_key: [SERVER_API_KEY]
Content-Type: application/json
Content-Length: [data_length]

{data:0.01}–EOF–Pattern–
+KTCP_DATA: 1,253

BX310
//Setup
AT+SRWCFG=1 //STA only
AT++SRWSTACFG=“ssid”,“password”,0
AT+SRWSTACON=1 //Connect to wifi AP
AT+KTCPCFG=1,0,[server],3000
+KTPCFG: 1

//Connection
AT+KTCPCNX=1
AT+KTCPSND=1,[size]
+KTCP_DATA: 1,47,HTTP/1.1 400 Bad Request
Connection: close

As you can see, despite the initial setup, both are doing the same thing.
I wonder if it has something to do with the current firmware version of both.
The HL78 was updated to BHL7800.3.4.4.3
I couldn’t update the BX310 (still version P1.0.0) over UART because pin 27 needs to be pulled high and I don’t have access to it anymore.
I also couldn’t update it via AirAdvantage. It throws an “ERROR” when I type AT+WDSS=1,1
Maybe both facts are related, I don’t know.

Am I missing something?
Many thanks in advance.