• 締切済み

HTTPのPUTをしたい

HTTPのPUTをしたいのですがわかりません。 GETはできました。サンプルも結構見つけました。 GETからPUTするために以下の点を変更しただけです。 1.要求の「GET」を「PUT」にする 2.「Read」を「Write」にする HTTPサーバの設定はできるようにしたつもりですが、 確認方法もわからなく、 プログラムが悪いのか、サーバの設定が悪いのかもわかっていません。 あわせて教えてください。

みんなの回答

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.2

W3Cのこのリンクをたどってみて下さい。PutのCで書かれたサンプルがあります(ただしUnix用)。また、サーバの設定に関する説明もあります。

参考URL:
http://www.w3.org/Amaya/User/Put.html
  • nta
  • ベストアンサー率78% (1525/1942)
回答No.1

ご質問には具体的な内容がほとんど書かれていないため、回答は無理なように思います。どのようなOSか分かりませんが、TCP/IP用のセッションモニターを準備されてログを作成してみればどこで動作がつまずいているのかは解析できると思います。結果を調べてから再投稿してください。 (例) HTTP Monitor(Windows Linux他) http://www.xk72.com/charles/ NetKids(Windows版のみ) http://www.istinc.co.jp/download/

yuyama
質問者

補足

すみません、不足してました。 OSはWindows、開発ツールはVisualC++です。 MFCのCHttpFileクラスなどを使用すると簡単かなと思ったのですが。 PUTのサンプルがなかったもので。 教えていただいたツールで確認してみます。

関連するQ&A

  • FTPのPUT、GETについて

    FTPのPUT、GETについてお教え下さい。現在サーバーの設定は完了し、DOS画面よりFTPでPUTを行っているのですが、送信先となるサーバーにファイルサイズがゼロのファイルが作成され、途中で止まった状態になってしまいます。GETも同様でサーバーからクライアントにファイルを取得はしているのですが、ファイルサイズがゼロのファイルが作成され止まった状態になってしまいます。また、他のサーバーでPUT、GETを行うとPUT、GET共にファイルの取得も送信も出来ます(クライアントは同じPCを使っています)。やはりサーバーの設定が足りないのでしょうか? どなたか対策方法をご存知の方がいましたらお教え下さい。よろしくお願い致します。

  • HTTP serverのサンプル

    ソケットを使った簡単はHTTP serverを作りたいのですが、ブラウザでLocalhostで指定したら、Helloとだけ返す簡単なHttp serverのサンプルプログラムを教えて頂けないでしょうか。 ソケットの部分は出来ていますが、HTTPの部分が分かりません。 よろしくお願いします。

  • HTTP GETで認証をする

    すいません。 今Inettransferでhttpコントロールを使いサーバーからファイルをGETする仕組みを作っているのですが、その際サーバーには匿名アクセスを拒否し認証をしたいと思っています。 フォルダにIDとpassを付けてもGETが出来ません。PUTは出来たのですが、どなたか分かる人いませんか? ちなみにEveroneを付けるとGETが出来たので、PATHなどには問題ないです。 With Http1 .Timeout = 60000 .Url = urlSourceFile .get fileBuffer, , "ID", "PASS" If .Status = 200 Then         ~処理する。 エラーコードは、401です。

  • $ENV{'HTTP_COOKIE'}について

    windowsサーバーのcgi(※)にて「$ENV{'HTTP_COOKIE'}」でcookieの値が正常に取得できてましたが、 linuxサーバーにそのソースをそのまま移行し、動作確認したところ「$ENV{'HTTP_COOKIE'}」でcookieの値が取得できなくなってしましました。 (※)・・・ショッピングカートの処理 ちなみにSSLを使用しているページです。 (1)画面A(http)から「カート入れる」ボタンをクリックし、画面B(https)に遷移 (2)画面Bに遷移した際にcookieに取得、保存 要するにhttpsでセットしたものをhttpsゲットしようとしています。 サーバーの環境は以下となります ■windowsサーバー ・OS : Windows 2003 R2 SP2 ・Perl ver : 5.8.7 ■linuxサーバー ・OS : Red Hat Enterprise Linux 4 ・Perl ver : 5.8.8 ・パーミッション : 757 ロジックは変更していないのでおそらくサーバーのどこかの設定を変更しなければならないのではないかと思われますが、どこに手を付けてよいのかがわかりませんので ご教授していただきたいです。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • InetコントロールHTTPでバイナリファイルをサーバにPUTする。

    Inetコントロールを使用してHTTPでサーバ上にバイナリファイルを送信使用としています。 ExecuteメソッドのPUTを使用してみましたが、サーバ上のファイルサイズが0KBになってしまい、正常に送信されていません。 Dim bData() As Byte Dim intFile As Integer intFile = FreeFile() Open "D:\Temp\aaa.mdb" For Binary Access Read As #intFile ReDim bData(0 To LOF(intFile) - 1) 'ここでは、bDataに読み込めている。 Get #intFile, , bData Close #intFile Inet1.Execute "http://aaserver/files/aaa.mdb", "PUT", bData よろしくお願いします。

  • HTTPレスポンスの終端はどうわかる?

    MacOSX、C言語でsocket(),writeなどを使ってサーバにリクエストを送り レスポンスを標準出力しようとしています。 とりあえずレスポンスをbuf[BUFSIZ]にreadさせようとしているのですが、 レスポンスの内容のサイズがBUFSIZ以上だった場合、繰り返しreadさせる 必要があります。 なので(かなり簡潔に書きますが) while(1) if(buf[i]==EOF){break;} n=read(socket,buf,sizeof(buf)-1); みたいなことを考えました。がこれだとループが止まってくれません。 延々と読み込んでは表示してくれます。。。 たぶんHTTPレスポンスの終端がEOFだと思ったのが違うのだと思います。 HTTPレスポンスの終端というのはどう判断したらよいのでしょうか。 よろしくお願いいたします。

  • HTTPログの意味

    LinuxのProxyサーバ(Interscan)のhttpログに表示されている以下の意味を教えてください。 ・PROFIND ・UNLOCK ・GET ・PUT

  • 簡単なHTTP-Get

    こんにちわ。 初めて質問します。 サイトの簡易試験を行いたくJAVAを使ってHTTPのGetリクエストを送信したいと考えています。 要件は以下の通りです。 1、HTTPはGetリクエストを使用する 2、URLはコードに記載ではなく特定のファイル(URL.txt)を1行づつ読み込む 3、User-Agentを都度変更できるようにする ということを行いたいのですが、皆様にとっては簡単なことかもしれませんが、 なかなか上手くいきません。 手助けをお願いいたします。

  • $ENV{'HTTP_COOKIE'}について

    windowsサーバーのcgi(※)にて「$ENV{'HTTP_COOKIE'}」でcookieの値が正常に取得できてましたが、 linuxサーバーにそのソースをそのまま移行し、動作確認したところ「$ENV{'HTTP_COOKIE'}」でcookieの値が取得できなくなってしましました。 (※)・・・ショッピングカートの処理 ちなみにSSLを使用しているページです。 サーバーの環境は以下となります ■windowsサーバー ・OS : Windows 2003 R2 SP2 ・Perl ver : 5.8.7 ■linuxサーバー ・OS : Red Hat Enterprise Linux 4 ・Perl ver : 5.8.8 ・パーミッション : 757 ロジックは変更していないのでおそらくサーバーのどこかの設定を変更しなければならないのではないかと思われますが、どこに手を付けてよいのかがわかりませんので ご教授していただきたいです。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • HTTP プロトコル(正しい GET コマンドの書き方)

     Perl を使って自分のリンク集のリンクの存在チェックプログラムを作っています。  で、HTTP プロトコルの、こちらが発行するリクエストで "GET xxxxx HTTP/1.0" というのがあると思いますが、この xxxxx の部分の文法でちょっと手間取ってます。  というのも、サーバーによって http:// から始まるパスでなければならない場合と、ドメイン名は除いた純粋なパス("http://www/xxx/" であれば、"/xxx/" ということ)でなければならない場合の2通りがあるんです。  ほとんどのサーバーは両方OKなんですが、一部のサーバーだけがそういう設定になっているようです。  正しいクエリーURIの記述の仕方とかあるんでしょうか。  それとも、やっぱり2回リクエストするしかないんでしょうか。