将Java复制到Python中

2024-09-24 02:24:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我对互联网的工作方式不是很熟悉,所以我不确定这个java方法在做什么,也不知道如何在python中最好地复制它。我尝试了几种不同的方法,包括urllibs和sockets,但似乎都不起作用。只有当我得到一个响应时,我最终得到一个巨大的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);

Tags: 方法trueurlnewinputxmloutcon
1条回答
网友
1楼 · 发布于 2024-09-24 02:24:32

它看起来像是在打开一个到sHOSTNAME的连接,发送make\uxml生成的XML数据(显然是一个名为XMLData的POST参数,所以sPROTOCOL必须是HTTP),然后在parseResp中处理响应。你知道吗

在python中,您将使用httplib。在http://docs.python.org/library/httplib.html的最后一个例子是做类似的事情(但是发送三个参数)。请注意,您发布的代码有点难看,因为它显式地编写了POST内容—在python中,您只需将XML作为参数。你知道吗

相关问题 更多 >