Tôi đang cố gắng tạo một Bảng ảo vào/ra siêu đơn giản bằng cách sử dụng wx/Python. Tôi đã có mã sau đây tại chỗ cho một trong các yêu cầu của tôi đến máy chủ nơi tôi sẽ lưu trữ dữ liệu:URL PythonLib/URLLib2 POST
data = urllib.urlencode({'q': 'Status'})
u = urllib2.urlopen('http://myserver/inout-tracker', data)
for line in u.readlines():
print line
Không có gì đặc biệt xảy ra ở đó. Vấn đề tôi gặp phải là, dựa trên cách tôi đọc tài liệu, điều này sẽ thực hiện Yêu cầu đăng bởi vì tôi đã cung cấp thông số dữ liệu và điều đó không xảy ra. Tôi có mã này trong chỉ mục cho url đó:
if (!isset($_POST['q'])) { die ('No action specified'); }
echo $_POST['q'];
Và mỗi lần tôi chạy ứng dụng Python tôi nhận được văn bản 'Không có hành động được chỉ định' được in trên bảng điều khiển của tôi. Tôi sẽ cố gắng thực hiện nó bằng cách sử dụng các đối tượng yêu cầu như tôi đã thấy một vài bản demo bao gồm những người, nhưng tôi tự hỏi nếu có ai có thể giúp tôi giải thích tại sao tôi không nhận được một yêu cầu đăng bài với mã này. Cảm ơn!
- EDITED -
Mã này hoạt động và bài viết để trang web của tôi đúng:
data = urllib.urlencode({'q': 'Status'})
h = httplib.HTTPConnection('myserver:8080')
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
h.request('POST', '/inout-tracker/index.php', data, headers)
r = h.getresponse()
print r.read()
Tôi vẫn không chắc chắn lý do tại sao các thư viện urllib2 không Đăng khi tôi cung cấp các tham số dữ liệu - với tôi các tài liệu chỉ ra rằng nó nên.
Tại sao bạn không sử dụng 'urllib2'? –
Tôi. 'urllib2.urlopen'. Tôi chỉ sử dụng urllib để mã hóa dữ liệu bài đăng. –