Google.Com 上的 http GET 请求返回"Error 302 page has been moved"

Http GET request on Google.Com returns "Error 302 page has been moved"

本文关键字:Error page has moved been 返回 上的 Com http GET 请求      更新时间:2023-10-16

我正在尝试使用Marmalade SDK进行移动开发。我目前正在尝试使用IwHTTP完成各种任务。我已经能够在http://www.google.com URL上复制我的特定问题。我的代码将输出"302错误"页面的源代码,而不是标准的Google页面。这不是我的具体问题(也就是说,我不关心谷歌),但这重复了我的问题与另一个网站。

我试着在网上寻找这个问题,但只发现了与恶意软件相关的问题。我不认为这是使用图书馆的问题。这很可能是我对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的测试代码。

HTTP代码302表示临时重定向。对于浏览器来说,这意味着您应该遵循重定向。重定向到的位置在HTTP响应头中作为Location:

如果你想使用这个重定向,你需要得到这个标题并跟随它

相关文章: