ブラウザコントロールを使用して、マルチパートフォームデータをサーバーにPOSTしようとしています。
PostUrlL();
メソッドパニックは、KERN-EXEC 3
呼び出されるとすぐに実行されます。
これは、コードで使用しているものと同様のスニペットです。
// These LITerals are copied to pointer vars below
_LIT8(K_txt_Boundary, "0xABeR1122EEFFx0");
_LIT8(K_CT_MultipartFormData,"multipart/form-data");
HBufC *url = HBufC::NewL(URL_SIZE);
HBufC8 *contentType = HBufC::NewL(CONTENT_TYPE_SIZE);
HBufC8 *bufPostData = HBufC::NewL(POST_DATA_SIZE);
HBufC8 *boundary = HBufC::NewL(BOUNDARY_SIZE);
// Check allocation was successful
// and copy required data to allocated space.
TAny *any = NULL;
TRAPD(error, iBrowser->PostUrlL(
*url,
*contentType,
*bufPostData,
boundary,
any)
);
iBrowser
、ブラウザコントロールハンドルは次のように作成されます。
エラーチェックを省略していますが、次のスニペットが配置されている関数呼び出しをTRAPします。
iBrowserCapabilties = TBrCtlDefs::ECapabilityDisplayScrollBar
| TBrCtlDefs::ECapabilityLoadHttpFw
| TBrCtlDefs::ECapabilityGraphicalHistory
| TBrCtlDefs::ECapabilityGraphicalPage
| TBrCtlDefs::ECapabilityClientResolveEmbeddedURL
| TBrCtlDefs::ECapabilityCursorNavigation
| TBrCtlDefs::ECapabilityClientNotifyURL;
iBrowserObserver = CBrowserObserver::NewL(this);
iBrowser = CreateBrowserControlL(
iAppView,
aRect,
iBrowserCapabilties,
TBrCtlDefs::ECommandIdBase,
NULL, // Soft keys
iBrowserObserver, // Link Resolver
NULL,
NULL // Layout change
);
iBrowser->SetBrowserSettingL(TBrCtlDefs::ESettingsCookiesEnabled, ETrue);
内容をログに記録して、ポインター変数のいずれかがNULLであるかどうかをクロスチェックしました。意図的なポインターを除いて、すべて問題ないようです。(ドキュメントには、将来の使用のために予約されていると記載されているため、NULLが適切な値であると思います)。
iBrowser
また、これがブラウザコントロールの有効なインスタンスであることも確認しました。上で述べたように、私は TRAP
ブラウザコントロールを作成するためのコードを含む関数を使用しています
呼び出しPostUrlL();
はパニックで失敗しますKERN-EXEC 3
。
任意のポインタ、提案、または代替案を歓迎します。
ありがとう。