Репликация Java в Python - PullRequest
       12

Репликация Java в Python

0 голосов
/ 04 августа 2011

Я не очень хорошо разбираюсь в том, как работают интернеты, поэтому я не совсем уверен, что делает этот java-метод или как его лучше всего воспроизвести в python.Я пробовал несколько различных методов, включая urllibs и сокеты, но, похоже, ничего не работает.Единственный раз, когда я получаю ответ, я получаю огромный HTML-документ, когда ответ должен составлять всего около 5 строк xml.

Любая помощь будет очень признателен, спасибо, ребята :).

try  {
            URL url = new URL( sPROTOCOL, sHOSTNAME, sPAGENAME );
            URLConnection url_con = url.openConnection();
            url_con.setDoInput(true);
            url_con.setDoOutput(true);
            url_con.setUseCaches (false);
            url_con.setRequestProperty ("content-type", "application/x-www-form-urlencoded");

            String input_xml =  make_XML( sAppID, sAppPassword, sUserID, sPassword );
            if (bDEBUG) {
                    System.out.println( "\nINPUT XML------------------\n" + input_xml );
                    System.out.println( "\nEND INPUT XML--------------\n" );
            }
            BufferedWriter writebuf = new BufferedWriter(new OutputStreamWriter(url_con.getOutputStream()));
            writebuf.write("XMLData=");
            writebuf.write( URLEncoder.encode( input_xml, "UTF-8" ) );  //Java 1.4.x and later
            //writebuf.write( URLEncoder.encode( input_xml ) );  //Java 1.3.1 and earlier
            writebuf.flush();
            writebuf.close();
            writebuf = null;
            HashMap hm = parseResp(url_con);

1 Ответ

1 голос
/ 04 августа 2011

похоже, что он открывает соединение с sHOSTNAME, отправляет данные XML, сгенерированные make_XML (по-видимому, как один параметр POST с именем XMLData, поэтому sPROTOCOL должен быть HTTP), а затем обрабатывает ответ в parseResp.

в python вы бы использовали httplib.последний пример на http://docs.python.org/library/httplib.html делает нечто подобное (но отправляет три параметра).обратите внимание, что код, который вы разместили, выглядит некрасиво, так как он явно записывает содержимое POST - в python вы просто указываете XML в качестве параметра.

...