重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

開発環境:Visual Studio 2008 SP1
OS:Windows XP SP3

はじめまして。
現在Windows Mobile端末向けのアプリケーション開発の中でHTTP通信を行う部分を作成しているのですが、
ターゲットとなる実機(SoftBank X05HT)で動作させると、特定の状況でエラーが出ることがわかりました。

具体的に申しますと、実機を立ち上げた直後にアプリを起動した場合は、CHttpFile::SendRequest()を呼び出した直後に
内部エラー「CInternetException for error 12031」が発生し、画面上に「サーバー名またはアドレスは解決されませんでした」
または「サーバーに接続できませんでした」と表示されるというものです。
前述のメッセージは接続するサーバーをドメイン指定した場合に表示され、後述のものはIPアドレスを直接指定した場合に表示されます。

但しこの現象は一度ブラウザ(付属のOpera Mobile)を起動し、適当なサイトを表示した後には発生しなくなります。
端末側での設定の問題などの可能性もありますが、何か情報がございましたらどうかご教示いただけます様お願い致します。

以下は大まかなソースコードです。

CInternetSessioninetSess( _T( "HttpTest" ), 1, INTERNET_OPEN_TYPE_PRECONFIG );
BOOLbRet= FALSE;

DWORD dwServiceType;
CString sURL, sServer, sObject;
sURL = "http://123.456.789.000/ABC/output.php?type=statu …
::AfxParseURL(sURL, dwServiceType, sServer, sObject, nPort);

CHttpConnection*lpHttpConn= inetSess.GetHttpConnection( sServer, nPort );
CHttpFile* lpHttpFile = lpHttpConn->OpenRequest( CHttpConnection::HTTP_VERB_GET, sObject );

lpHttpFile->SendRequest();

A 回答 (1件)

>実機を立ち上げた直後にアプリを起動した場合は~



ネットワークにつながっていますか?
勝手にダイヤルアップなどで接続することはないと思われますので、自分で接続処理をする必要があるかと。

>但しこの現象は一度ブラウザ(付属のOpera Mobile)を起動し、適当なサイトを表示した後には発生しなくなります。

Operaがネットワーク接続処理などを行ったから…でしょう。

http://pc.nikkeibp.co.jp/article/NPC/20071101/28 …
のような自動ダイヤルアップソフトが導入済みであれば
接続しようとした時点でダイヤルアップしてくれます。

あるいはOperaやInternet Explorer Mobileの用に自前で接続する。
とか…。
http://www.amazon.co.jp/dp/4797345764
の本にその場合の接続方法が載っていたかと。
    • good
    • 0
この回答へのお礼

>>Wr5様
ご回答ありがとうございます。
急遽Windows Mobileでの開発を始め、HTTP通信のサンプルやMSDNでのヘルプを参照して上記のコードに至りましたが、別途ネットワークへの接続処理が必要となるということを完全に見落としていました。

Connection Manager APIを使用し、接続を確立することで問題を解決することができました。ご紹介頂きました書籍についても、改めて時間を作って参考にさせて頂きたいと思います。
本当にありがとうございました。

お礼日時:2009/04/07 11:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!