2016-08-18 22 views
1

URLを指定してアプリケーションにコードを記述していますが、GETリクエストにレスポンスボディを返すようにしたいと考えています。これを行う簡単な方法が見つからないようです。私は彼らのドキュメントhereを読んでいると、これは私が現在問題httpリクエストGoogleアプリケーションエンジン

func Extract(url string) ([]string, error) { 
    r, _ := http.NewRequest("", url, nil) 
    ctx := appengine.NewContext(r) 
    client := urlfetch.Client(ctx) 
    resp, err := client.Do(r) 
... 
} 

が、私はこのコードを実行するたびに、私は私が推測

NewContext passed an unknown http.Request 

は、私がいることをどのように作るのですか、次のエラーを取得しています持っているコードです。 http.Requestが知られていますか?

答えて

0

Contextが必要なAppEngineサービスは、Contextの作成に*http.Request値が必要なため、ハンドラからのみ使用できます。しかし、このRequestは 着信のリクエストではなく、のリクエストである必要があります。

func MyHandler(w http.ResponseWriter, r *http.Request) { 
    ctx := appengine.NewContext(r) 
    r2, _ := http.NewRequest("", url, nil) 
    client := urlfetch.Client(ctx) 
    resp, err := client.Do(r2) 
    // ... 
} 

は、関連する質問項目:Fetching a URL From the init() func in Go on AppEngine

+0

を作るための方法がある

だから、あなたは、コンテキストの作成にがあることに合格する必要があり、http.Requestパラメータを持っているハンドラを、必要とします発信リクエスト? – anonrose

関連する問題