0

我正在尝试使用浏览器控件一些多部分表单数据发布到我的服务器。

方法一旦被调用就会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

欢迎任何指示、建议或替代方案。

谢谢。

4

2 回答 2

1

从问题评论:

我正在诺基亚 E63 上进行测试。我也在使用 Symbian^3 SDK。

E63 是 S60 第三版功能包 1 (S60 3.1) 设备。尽管已经对平台版本之间的二进制兼容性给予了很多关注,但您确实应该使用 S60 3rd Edition SDK,例如 3.0 或 3.1。

于 2010-07-02T13:15:30.617 回答
0

您可以在平台浏览器控制 API 文档中验证 PostUrl 方法的输入参数吗 ???并验证您的浏览器控件是该类的成员并已初始化。

于 2010-06-29T17:03:27.463 回答