Marmalade SDK を使用してモバイル開発をいじろうとしています。現在、IwHTTP を使用してさまざまなタスクを実行しようとしています。http://www.google.com URLで特定の問題を再現できました。私のコードは、標準の Google ページではなく「302 エラー」ページのソース コードを出力します。これは私固有の問題ではありません (つまり、私は Google をあまり気にしませんでした) が、これは別の Web サイトで私の問題を再現します。
この問題について Web を調べてみましたが、マルウェアに関連する問題しか見つかりませんでした。これはライブラリの使用の問題ではないと思います。これはおそらく、ここで私を悩ませている HTTP の理解不足です。このエラーを生成する短いスニペットを次に示します。
#include "s3e.h"
#include "IwGx.h"
#include "IwHTTP.h"
#include <string>
int32 rec = 0;
CIwHTTP http;
std::string output = "";
char buffer[1024];
int32 min(int32 a, int32 b) { return a > b ? b : a; }
int32 http_get_callback(void* sys_data, void* user_data) {
if(http.ContentReceived() < http.ContentLength()) {
http.ReadData(buffer, min(1024, http.ContentLength() - http.ContentReceived()));
output += buffer;
}
}
int main()
{
IwGxInit();
IwGxSetColClear(0, 0, 0xff, 0xff);
http.Get("https://www.google.com", http_get_callback, 0);
while(!s3eDeviceCheckQuitRequest() &&
!s3eKeyboardGetState(s3eKeyEsc) & S3E_KEY_STATE_DOWN &&
!s3eKeyboardGetState(s3eKeyAbsBSK) & S3E_KEY_STATE_DOWN)
{
IwGxClear();
IwGxPrintString(5, 5, output.c_str());
IwGxFlush();
IwGxSwapBuffers();
s3eDeviceYield(0);
}
IwGxTerminate();
return 0;
}
バリアント (SSL の有無にかかわらず、.com と .ca を使用) も試しましたが、期待どおりの出力を得ることができませんでした。
この問題に関するポインタはありますか?
編集: そして、このコードがおそらく恐ろしいものであることは知っています。これは、SDK を学習するための単なるテスト コードです。