• 締切済み

WinAPIでインターネットからDL

VisalC++でWinAPIを使って(MFC等を使わずに)HTTPサーバーにアクセスし ダウンロードしたデータ(数十byte)を返すDLLを作ってるんですが HTTPサーバーにアクセスする方法がわかりません どなたか教えてください

みんなの回答

  • cherry3
  • ベストアンサー率39% (18/46)
回答No.1

わたし自身使用したことないですけど 以下のAPI関数を使えばできるかと思います。 InternetConnect インターネット上のサーバへの接続 InternetCloseHandle インターネット関数のハンドルのクローズ InternetOpenUrl URLのオープン InternetReadFile インターネット上のファイルの読み込み HttpOpenRequest HTTPリクエストの作成 HttpQueryInfo  HTTPリクエストに関連する情報の取得 HttpSendRequest HTTPリクエストを送信する 引数や戻り値、詳しい使い方などはヘルプなどで 調べてみてください。

関連するQ&A

  • WinAPI GetDiskFreeSpaceEx について

    お世話になります。 既存のWinNTServerで動いていたPERLモジュールがあります。 その中にWinAPIのGetDiskFreeSpaceExを使用してドライブ空き容量を得ていたのですが、今回ServerがVersionUpし、WinServer2003になったところ、取得できなくなってしまいました。 確かにMSDNを見てもこの関数はMicrosoft Windows NT Server 4.0 Standard Editionまでとなっているように見えるのですが、ではWinServer2003ではどのようにしてドライブ空き容量を得ることができるのでしょうか? もしくは、記述方法を変えたらこの関数でも対応可能なのでしょうか? よろしくお願いいたします。

  • 動画配信のDL予防について教えて下さい

    WEBサイト運営を(他者に)依頼している者です。 安易なダウンロードを防ぐため動画(WMV)をストリーミング配信をするように指示しましたが、どうにも理解して貰えません… はじめはHTTPサーバに置いていたらしく、ダウンロードしたい放題でした。 現在はストリーミングサーバに移してはあるのですが、 まだHTTPサーバに置いてあるデータもあるようです。 先方曰く、直アドレスが割れない限り大丈夫、とのこと。 とにかく一般の方が安易にダウンロード出来ないよう指示したいです。 私がWEBサーバについての知識が乏しいためどうにか、 「WMVの動画を一般の人に安易にダウンロード出来ないように」指示をしたいのですが、何と伝えればある程度の「予防」が出来ますでしょうか? ASP…とかは関係ありますか? また、本屋なども回ってみたのですが、このあたりの知識を得たい場合にはどのような勉強が必要でしょうか。 どちらかの回答でも構いません。 皆様のお力をお借りしたいです。どうかお願いいたします。

  • wininet.dllとwsock32.dllについて

    クライアントのVBAから、サーバにHTTPで文字データを送信しようとしています。 1. WinAPIの"InternetOpenURL"(wininet.dll)が使えると思いましたが、MSDNLibraryではWinCE用と英語で言っているようでした。W2Kの自PCにも上記DLLは入っていますが、W2Kで使うのは一般的ではないのでしょうか? 2. クライアントのIPアドレスも送信したいので、wsock32.dllのAPIで取得しようとしています。wininetやwsock32が、いつインストールされるものなのか(OS入れた時か、Officeか、IEか等)を調べる手段はあるでしょうか?また、MS社以外の製品によって、これらのDLLがアップデートされてしまうことは通常ないと考えていてよいものでしょうか? ご教授下さいますよう、よろしくお願いします。

  • WinAPIでフォルダ作成

    先日質問させていただき、 ファイル出力時に、フォルダを作成し、そのフォルダにファイルを出力していく方法をお聞きしたところ、 _mkdir()関数を使い、最初にフォルダを作っておく方法を教わり、 これは上手くいきました。 それとは別に、WinAPIを使い、フォルダの有無を調べ、無い場合は 作成するという方法があるのを教えてもらいました。 WinAPI使ったことないので、良くわからなかったのですが、 丁寧な説明を頂き、ほとんど、コピーして貼り付けるだけだったので 実行してみたのですが、意味のわからないエラーが出てしまいました。 実行した方法は、 #include <shlwapi.h> #include <windows.h> if ( PathIsDirectory(path) ){ ←フォルダ有無  CreateDirectory( path, NULL ); ←フォルダ作成 } sprintf( buff, "%s\\%s", path, filename ); fp = fopen( buff, "w" );  : fclose( fp ); エラーの内容は 構文エラー : 識別子 'DECLSPEC_IMPORT' がシンタックスエラーを起こしました。 というものでした。 エラーの部分は、よく解らないのですが、自分で書いたメインの文ではなく、何かのヘッダ部分?のようでした。 もしかして、WinAPIを使うには、何かインストールしないとマズイのでしょうか?? これだけの説明で、何が悪いのか指摘できるのかわかりませんが、 わかる方いらっしゃいましたら教えて下さい。 何か足りない情報があったら書き込みます! ちなみにもう一つお聞きしたいのは、フォルダのpath指定のところは 相対パスでもいいのでしょうか? 例えば、現在Cファイルがある場所にDATAというフォルダを作りたかったら、 path指定のところは、 PathIsDirectory(DATA) で問題ないのでしょうか? すみませんが、回答お願いします!

  • HTTPストリーミングによるデータの取得方法

    QuickTime のようなHTTPストリーミングを行うアプリの開発を検討しております。 おそらく、MFCのWinInetクラスを使って実装可能と思うのですが、QucikTimeは、サーバからダウンロードしたデータを取得しながら再生していますが、同様にデータを一括取得ではなく、取得しながら逐次的にデータを処理するようなしくみを実現する方法について、ご教示いただければと思います。もしありましたら、サンプルプログラムをお願い致します。

  • HTTPとFTPの違い

    vectorなどのソフトをダウンロードするときHTTPダウンロードとFTPダウンロードを選んでダウンロードしますが、 HTTPダウンロードの場合はHTTPプロトコルでwwwサーバとやりとりをして、その後wwwサーバがデータベースサーバに問い合わせをして、目的のデータをwwwサーバーに返しクライアントに80番ポートで転送するのでしょうか? またFTPダウンロードの場合はFTPプロトコルでanonymous認証してからFTPサーバとやりとりをして、その後FTPサーバがデータベースサーバに問い合わせをして目的のデータをwwwサーバに返しクライアントに20番ポートでデータを転送してるのでしょうか? ちょっとわからなくなったので、間違えていたら教えて下さい。 よろしくお願いします。

  • C#で、WinAPIのWNetAddConnection3と同じような機能を実装するには?

    C#でイントラネット内にデータを転送するツールを作っていますが、 ログイン認証がうまくいきません。 WinAPIのWNetAddConnection3メソッドでできるということは 教えていただいたのですが、C#でこれと同様のことをする方法が 解りません。 質問の横投げのような形で大変申し訳ありませんが、ご助力いただ けますよう、お願い申し上げます。

  • 古いブラウザでインターネット

    お世話になります。 完全に趣味の世界の話です。 古いブラウザでインターネットをする方法を検討しています。 古いパソコンにインストールされているブラウザ、 SSL2.0、SSL3.0、TLS1.0にしか対応していないようなブラウザだと、 昨今のhttpsのウェブサイトは表示されず、httpの非暗号サイトしかアクセスできません。 以前、squidによるリバースプロキシで、80番のHTTPサーバに対して外部からのアクセスは、https化しているように見せかける…という方法が取れるというのは知っていたのですが、 proxyなどの中継サーバーを自宅内に立ち上げて、 通常のインターネット通信は、Proxyサーバー経由、 ローカル側のブラウザ-Proxyサーバー間は、ssl2.0や、もしくはhttpsリクエストを、proxy側でhttp化してアクセス。 (ローカル端末からはhttpアクセスでproxyサーバにキャッシュされたhttps(tls1.2→ssl2.0化)のWebサイトを見る。) といった事は現実的に可能でしょうか。 よろしくお願いいたします。

  • HTTP接続

    HTTPでサーバー上のファイルをダウンロードする アプリを作成中です。 HTTP接続でサーバー上のターゲットファイル名や、ファイルサイズ等を 取得したいのですが、ネット上しらべたりしたのですが、 FTP接続では同等の機能を実装したサンプルなどがあるのですが、 HTTP接続においては見当たりません。私の調べ方が悪いのかもしれませんが、 そもそも、HTTP接続において希望の処理ができるのかどうか ご教授していただけないでしょうか? ネットワークに疎いですが、早急に実装しないといけなくて 困っております。 よろしくお願いします。 VC++6.0 MFC です。

  • HTTPサーバにあるデータはすべてダウンロードされてしまうものですか?

    HTTPサーバにあるデータはすべてダウンロードされてしまうものですか? ホームページ用のサーバにデータを置くと、リンクされていなくても、GetHTMLのようなソフトで、すべて他人にオープンな状態になってしまうのでしょうか?

専門家に質問してみよう