我正在尝试使用浏览器控件将一些多部分表单数据发布到我的服务器。
方法一旦被调用就会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
,浏览器控制句柄的创建方式如下:
我省略了错误检查,但我确实捕获了放置以下代码段的函数调用。
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
。
欢迎任何指示、建议或替代方案。
谢谢。