I'm new to the requests part of Python, and having some trouble here.. I have the following example in Java, that works perfectly...
public class teste {
    //The variable “text” must have all parameters. For instance, it could be
    //-b –m 4 –d –tree removeAll –t TEXT, TEXT, TEXT
    private static void sendPost(String text) throws Exception {
        //Sobek’s URL
        URL url = new URL("http://sobek.ufrgs.br/webservice/sobek.php");
        //Please pay attention to the constant value “data”
        String postData = "data= "+ URLEncoder.encode(text);
        byte[] postDataBytes = postData.getBytes();
        //Connect to the URL
        HttpURLConnection conn = (HttpURLConnection)url.openConnection();
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));
        conn.setDoOutput(true);
        //Send the information
        conn.getOutputStream().write(postDataBytes);
        //Read the server response
        Reader in = new BufferedReader(new
        InputStreamReader(conn.getInputStream(), "UTF-8"));
        for (int c; (c = in.read()) >= 0;)
            System.out.print((char)c);
    }
    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        String params = "-b –m 4 – tree removeAll -t TEXT";
        sendPost(params);
    }
}
but my software is in Python, so I need to transform the code.. I did this:
sobekURL = "sobek.ufrgs.br/webservice/sobek.php"
file_name = "Livro_MidiasNaEducacao_P1_rev3-cris2107.docx"
text = docx2txt.process(file_name)
parameters = "-b –m 4 – tree removeAll -t " + text
postData = "data=" + urllib.parse.quote_plus(parameters)
postDataBytes = bytearray(postData, 'utf8')
headers={
    "Content-type"  : "application/x-www-form-urlencoded",
    "Content-size"  : str(len(postDataBytes)) 
}
conn = http.client.HTTPConnection(sobekURL)
conn.request("POST",parameters,headers)
response=conn.getresponse()
print(response.status, response.reason)
data=response.read()
print(data)
conn.close()
conn.setRequestProperty();
I've got a lot of errors, solving it 1by1.. but now I got this:
Traceback (most recent call last): File "C:\Users\alvarosps\workspace\SobekMiningCorpus\AccessWebService.py", line 23, in conn.request("POST",parameters,headers) File "C:\Users\alvarosps\AppData\Local\Programs\Python\Python36\lib\http\client.py", line 1239, in request self._send_request(method, url, body, headers, encode_chunked) File "C:\Users\alvarosps\AppData\Local\Programs\Python\Python36\lib\http\client.py", line 1250, in _send_request self.putrequest(method, url, **skips) File "C:\Users\alvarosps\AppData\Local\Programs\Python\Python36\lib\http\client.py", line 1117, in putrequest self._output(request.encode('ascii')) UnicodeEncodeError: 'ascii' codec can't encode character '\u2013' in position 8: ordinal not in range(128)
Can anyone help?
EDIT: I've changed the argument parameters to parameters.encode("utf-8") and solved this problem.. but now I'm getting this: **
Traceback (most recent call last): File "C:\Users\alvarosps\workspace\SobekMiningCorpus\AccessWebService.py", line 23, in conn.request("POST", "/", parameters.encode('utf-8'),headers) File "C:\Users\alvarosps\AppData\Local\Programs\Python\Python36\lib\http\client.py", line 1239, in request self._send_request(method, url, body, headers, encode_chunked) File "C:\Users\alvarosps\AppData\Local\Programs\Python\Python36\lib\http\client.py", line 1285, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "C:\Users\alvarosps\AppData\Local\Programs\Python\Python36\lib\http\client.py", line 1234, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "C:\Users\alvarosps\AppData\Local\Programs\Python\Python36\lib\http\client.py", line 1026, in _send_output self.send(msg) File "C:\Users\alvarosps\AppData\Local\Programs\Python\Python36\lib\http\client.py", line 964, in send self.connect() File "C:\Users\alvarosps\AppData\Local\Programs\Python\Python36\lib\http\client.py", line 936, in connect (self.host,self.port), self.timeout, self.source_address) File "C:\Users\alvarosps\AppData\Local\Programs\Python\Python36\lib\socket.py", line 704, in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): File "C:\Users\alvarosps\AppData\Local\Programs\Python\Python36\lib\socket.py", line 743, in getaddrinfo for res in _socket.getaddrinfo(host, port, family, type, proto, flags): socket.gaierror: [Errno 11001] getaddrinfo failed
**
It's not the same question as the link posted, it uses different libraries, and the answers there didn't solved anything here..
