FC2ブログ
--
--.--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2011
05.18

httplibでPOSTする時。

Category: python
5月も半ばになり、だいぶ暖かくなってきましたので、pythonはじめました。

ちまっとしたテストツールを作るにあたって、httplibを使うことにしたのですが、
POSTでのアクセスがうまくいかなくて、色々と悶絶してしまったので、
メモっておくことにします。

いや、もちろん例は
http://www.python.jp/doc/2.4/lib/httplib-examples.html
にありますけど・・・。

# encoding: utf-8

import httplib
import re

# ヘッダとか出力してくれます。ちなみに、
# 0とかNoneとか空白だとデバッグメッセージなし、それ以外だとありのようです。
# 100とかしてもメッセージは増えません。
httplib.HTTPConnection.debuglevel = 1
con = httplib.HTTPConnection("puyopuyo.net")
pp="word=あいうえお".encode('cp932')
con.request('POST', "/test.cgi", pp, headers={
'User-Agent': "",
'Content-Type': 'application/x-www-form-urlencoded',
})
res=con.getresponse()
print res.read()


サイトがSJISの場合は、SJISにエンコードします。
個人的にはcp932が好きなのでそうしてますが。
あと、/test.cgi のパスの部分ですが、 / から始めます。ええ、ここで / を付けてなかったので、
ずっとサーバから400を返され続けましたorz

つまり、 / を付けるのを忘れるな!

っていうことです。ハイ。

telnet で http とお話する時もそうですね、ハイ。

それではみなさん、つまらないミスは減らすように心がけましょう。



スポンサーサイト
Comment:0  Trackback:0
2008
08.13

kid めぇ

Category: python
python のテンプレートエンジン、kid 大嫌いです。。
つくり的に仕方ないのですが、すべてパースして値を入れていくので、ちょっと HTML というか XHTML が間違っているとエラーでまくりです。

<input type="text" name"hoge" value="ほげ">

がエラーになります。

<input type="text" name"hoge" value="ほげ" />

とちゃんと書いてあげないといけません。。

amazon アフィリエイトのリンクを入れようものなら、手直しが必要まくりて、ちょっと手間です…。
/ が URLエンコードされているので、直さないといけないし、& は &amp; にしないといけないし。
変換するスクリプトでもそのうち書きましょうかね…。

perl の TT みたいなノリで書けるテンプレートエンジンにしないと、いろいろ面倒そうです。

いや、正しくない HTML やら、 XHTML を使わせろといってるんじゃないです。
いちいちエラーになるんで大変なんです。

っても、使ったことある人じゃないと、いまいち意味わからないかもなのですた。。


Comment:0  Trackback:0
back-to-top
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。