-1

これはおそらく非常に単純な質問のように思えますが、なぜこれが私にとってそれほど難しいのかについて、私は非常に混乱しています.

urllib (urllib2 ではなく) を使用して、要求された URL のコンテンツを取得する [url、data、cookie] の 3 つの入力を受け取る関数を作成したいと思います。簡単だと思ったので、以下のように書きました。

def fetch(url, data = None, cookies = None):
  if isinstance(data, dict): data = urllib.urlencode(data)
  if isinstance(cookies, dict):
    # TODO: find a better way to do this
    cookies = "; ".join([str(key) + "=" + str(cookies[key]) for key in cookies])
  opener = urllib.FancyURLopener()
  opener.addheader("Cookie", cookies)
  obj = opener.open(url, data)
  result = obj.read()
  obj.close()
  return result

私が知る限り、これは機能しません (誰か確認できますか?)。

4

1 に答える 1

1

試したときに何がうまくいかなかったのか、どの http サーバーでテストしているのかについては言いませんでした。リクエストは完了しましたか?サーバーが Cookie を認識できませんでしたか? 私が驚くべきことの 1 つは、複数の Cookie を 1 つのヘッダー フィールドに結合している可能性があることです。個別のCookie:ヘッダー フィールドを使用しても機能しますか?

于 2010-05-22T04:50:29.340 に答える