我希望我的代码将“Request url”作为输入,并将输出作为“Response XML”。这个我想用python实现。我不知道自从我是蟒蛇新手以来。虽然我知道如何在Java中实现这一点,但为此我已经用Java开发了代码。所以如果有人可以帮我这个。
Java code snippet:
import java.net.*; // import java packages.
import java.io.*;
import java.net.URL;
public class API {
public static void main(String[] args) throws Exception {
URL API = new URL("http:server//"); // Create a URL object 'API' that will locate the resources on remote server via HTTP protocol.
URLConnection request = API.openConnection(); // Retrieve a URLConnection object 'request' that will establish http connection by using openConnection() method.
BufferedReader in = new BufferedReader(new InputStreamReader(
request.getInputStream())); // Create an Output stream ‘in’ that will call InputStreamReader to read the contents of the resources.
String response;
while ((response = in.readLine()) != null) // Write to Output stream until null.
System.out.println(response); // prints the response on Console.
in.close(); // Close Output stream.
}
}
答案 0 :(得分:1)
from socket import *
s = socket()
s.connect(('example.com', 80))
s.send('GET / HTTP/1.1\r\n\r\n')
print s.recv(8192)
或者:http://docs.python.org/2/library/urllib2.html
import urllib2
f = urllib2.urlopen('http://www.python.org/')
print f.read(100)
第一个选项可能需要更多标题项,例如:
from socket import *
s = socket()
s.connect(('example.com', 80))
s.send('GET / HTTP/1.1\r\nHost: example.com\r\nUser-Agent: MyScript\r\n\r\n')
print s.recv(8192)
此外,我倾向于倾向于的第一个解决方案(因为,你做你想做的事而不做其他事情)要求你对HTTP协议有基本的了解。
例如,这就是HTTP协议对GET请求的工作方式:
GET <url> HTTP/1.1<cr+lf>
<header-key>: <value><cr+lf>
<cr+lf>
此处有更多内容,例如:http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Client_request
答案 1 :(得分:1)
还有一个名为requests的好软件包,可以让您在Python中的http需求变得更加容易。
对于获取请求,您可以这样做:
r = requests.get('http://www.example.com')
print(r.text)