2017-01-10 5 views
0

私は外出先でウェブサーバーを作っています。私はその回答フォームをクライアントに提供する必要があります。 この私が応答を受信し、私のコードの一部で:GOのConnにレスポンス(レスポンスを入力)を書くには?

  client := http.Client{} 
      resp, err := client.Do(request) 
      defer resp.Body.Close() 

      if err != nil { 
       log.Fatalln(err.Error()) 
      } 

ドゥ(リクエスト)が応答タイプを返し、私はクライアント(CONN)にこの応答を送信する必要があります。私はコネクション型のメソッドを見ましたが、コネクションにデータを書き込みますが、バイトだけを受け取り、バイト単位で応答を変換できませんでした。私は体、ステータスとヘッダーを送信する必要があります、conn.Write([]バイト)することができますか?この回答をクライアントに送信するにはどうすればよいですか?

+0

http.ResponseWriterの代わりにconn(私は 'net.Conn'を推測していますか?)を持っていますか? – JimB

+0

connは、Accept()メソッドから受け取った接続です。それは私がデータを書いてクライアントに送ることができる方法Writeを持っています。 – Vivi

+0

私の質問は:どのように私はクライアントに応答を送信することができます(つまり、ブラウザに応答を入れてください) – Vivi

答えて

1

http.ResponseにはWriteメソッドがあり、レスポンスの内容をHTTP/1.X形式のio.Writerに書き込みます。

これにより、応答の中にすべてが書き込まれるため、必要に応じてヘッダーを削除/修正する必要があります。

err = resp.Write(conn) 
+0

私は試みましたが、http.responseにはこのメソッドがありません。 http.ResponseWriteは持っていますが、私は同じことをしないと思います。 – Vivi

+0

私は、この方法があることを文書で見ましたが、私はそれを呼び出すことはできません。 func(r * Response)Write(wio.Writer)エラー – Vivi

+0

これは機能します!最後のケースで別のエラーだった、ありがとう! – Vivi

関連する問題