HttpQueryInfo报错,该怎么处理

Jun 13, 2016 am 10:42 AM
buffer printf quot

HttpQueryInfo报错
file1.php

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->    $file = "D:\\ReadFileTo.txt";    $handle = fopen($file, 'r');    $sContent = '';    while(false != ($a = fread($handle, 8080))){//返回false表示已经读取到文件末尾        $sContent .= $a;    }        fclose($handle);    echo "$sContent";
ログイン後にコピー


vc(输出file1.php):
C/C++ code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#include<windows.h>  #include<wininet.h>  #include<iostream.h>  #pragma comment(lib,"wininet.lib")  #define DATA_CACHE_SIZE 1024*10int main(int argc, char* argv[]){    printf("Hello World!\n");    int i = 0;    char pulr[] = "file1.php";    HINTERNET hinternet=::InternetOpen(                 "http generic",                 INTERNET_OPEN_TYPE_PRECONFIG,                 NULL,                     NULL,                 0);    if (!hinternet)    {        printf("InternetOpen\n");        system("pause");        return 0;    }    i = 1;    HINTERNET hconnect= ::InternetConnect(                          hinternet,                          "144.20.80.27",                          8080,                          NULL,                                //lpszUsername                          NULL,                                //lpszPassword                          INTERNET_SERVICE_HTTP,                          0,                                //dwFlags                          0                                    //dwContext                          );    if (!hconnect)    {        printf("InternetConnect\n");        system("pause");        return 0;    }            HINTERNET hHttpOpenRequest=::HttpOpenRequest(                        hconnect,                        "POST",                        pulr,                        "HTTP/1.1",                        NULL,                        0,                        INTERNET_FLAG_RELOAD,                        0            );    if (!hHttpOpenRequest)    {        printf("HttpOpenRequest\n");        system("pause");        return 0;    }    char psHeader[] = "Content-Type: application/x-www-form-urlencoded \n\r";    if (!(HttpAddRequestHeaders(        hHttpOpenRequest,         psHeader,         strlen(psHeader),         HTTP_ADDREQ_FLAG_REPLACE|HTTP_ADDREQ_FLAG_ADD        )) )    {        printf("HttpAddRequestHeaders\n");        system("pause");        return 0;    }    char *strRet=""; //"Yjr|fc|zf|cym|wjf||role1|role2|role3|role4";    char pstrContent[] = "UserName=admin&Password=-1";    if (! (HttpSendRequest(        hHttpOpenRequest,        NULL,        0,        (LPVOID)(LPCSTR)pstrContent,        strlen(pstrContent)                    )) )    {        printf("HttpSendRequest\n");        system("pause");        return 0;    }    // Get the length of the file.                DWORD dwFileSize=0;    DWORD dwLengthBufQuery = sizeof(dwFileSize);    DWORD dwIndex=0;        BOOL bQuery = ::HttpQueryInfo(hHttpOpenRequest,        HTTP_QUERY_CONTENT_LENGTH        |HTTP_QUERY_FLAG_NUMBER,         (LPVOID)&dwFileSize/*bufQuery*/,         &dwLengthBufQuery,        &dwIndex) ;    if (!bQuery)    {        printf("HttpQueryInfo\n");        system("pause");        return 0;    }    // Allocate a buffer for the file.       char* buffer = new char[dwFileSize+1] ;            //由于不允许HTTP写缓存,所以无需循环调用InternetReadFile    DWORD dwLength=0;    DWORD dwLengthOne=1;    BOOL bRead=TRUE;    char bufferOne[DATA_CACHE_SIZE+10];    strcpy(buffer,"");    while (bRead && dwLengthOne>0)    {        strcpy(bufferOne,"");        if (InternetReadFile(                hHttpOpenRequest,                bufferOne,                DATA_CACHE_SIZE+1,                &dwLengthOne                )            )         {            if (dwLengthOne>0)            {                memcpy(&buffer[dwLength],bufferOne,dwLengthOne);                dwLength+=dwLengthOne;                //接收数据包的大小和与总数据包大小比较                if (dwLength > dwFileSize)                {                    printf("while\n");                    system("pause");                    return 0;                }                buffer[dwLength]='\0';            }        }    }    buffer[dwLength]='\0';    //to widerchar    DWORD dwSize = MultiByteToWideChar (CP_ACP, 0, buffer, -1, NULL, 0);      WCHAR *wchr = new WCHAR [dwSize];    ::MultiByteToWideChar(CP_ACP,MB_ERR_INVALID_CHARS,buffer,-1,                 wchr,dwSize);    printf(buffer);//    wprintf(wchr);    delete [] wchr;    delete [] buffer;            ::InternetCloseHandle(hHttpOpenRequest);hHttpOpenRequest=NULL;    ::InternetCloseHandle(hconnect);hconnect=NULL;    ::InternetCloseHandle(hinternet);hinternet=NULL;    printf("\n");    system("pause");    return 0;}<div class="clear">
                 
              
              
        
            </div></iostream.h></wininet.h></windows.h></stdlib.h></stdio.h>
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Linuxのprintfはどこにありますか Linuxのprintfはどこにありますか Mar 10, 2023 am 09:05 AM

linux printf はコマンド ラインで使用されます。このコマンドは印刷データのフォーマットに使用されます。printf のコマンド形式は「printf FORMAT [ARGUMENT]...printf OPTION」です。「help」オプションはヘルプ情報の表示を意味し、 「version」オプションはバージョン情報を表示することを意味します。

Javaのバッファの概念とは何ですか Javaのバッファの概念とは何ですか Apr 28, 2023 pm 05:13 PM

1. JavaNIOBuffers を使用して NIOChannel と対話する概念。チャネルからバッファへのデータの読み取り、およびバッファからチャネルへのデータの書き込み。バッファの 3 つのプロパティ、つまり容量、位置ロケーション、制限を制御する必要があります。 2. インスタンス publicstaticvoidmain(String[]args){//長さ 10IntBufferintBuffer=IntBuffer.allocate(10);for(inti=0;i) のバッファを生成します。

putchar と printf の違いは何ですか putchar と printf の違いは何ですか Aug 22, 2023 pm 01:55 PM

putchar と printf の違い: 1. putchar のパラメータの型は int で、printf のパラメータの型は string; 2. putchar は 1 文字のみ出力でき、printf は複数の文字を出力できます; 3. putchar は出力をフォーマットできませんが、 printf はフォーマットできます。出力; 4. putchar には戻り値がありません。printf は正常に出力された文字数を返します。5. putchar はコンソールに出力します。printf はコンソールへの出力に限定されません。6. パフォーマンスなど。

fprintfとprintfの違い fprintfとprintfの違い Nov 28, 2023 am 10:48 AM

fprintf と printf の違いは出力先が異なり、printf は標準出力ストリームに出力するのに対し、fprintf は指定されたファイル ストリームに出力します。必要に応じて、適切な機能を選択して出力操作を実行します。 fprintf 関数は、まず fopen 関数でファイルを開き、使用後は fclose 関数でファイルを閉じる必要があることに注意してください。また、ファイルのオープンに失敗したり、操作エラーが発生した場合にはエラー処理が必要です。

Java で IO ストリーム操作にバッファを使用する方法と使用シナリオは何ですか? Java で IO ストリーム操作にバッファを使用する方法と使用シナリオは何ですか? May 07, 2023 am 09:37 AM

I/O ストリーム操作でのバッファの使用 NIO に加えて、Java を使用して I/O 操作を実行するには 2 つの基本的な方法があります: InputStream および OutputStream に基づくメソッドを使用する方法、(バイト ストリーム) では Writer および Reader を使用する方法です。 (キャラクタストリーム) ファイルI/Oにどのような方式を使用しても、バッファリングを合理的に使用できれば、I/Oパフォーマンスを効果的に向上させることができます。

不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没有关问题 不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没有关问题 Jun 13, 2016 am 10:15 AM

不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没问题。

写真が消える問題を解決する方法 写真が消える問題を解決する方法 Apr 07, 2024 pm 03:02 PM

写真が消える問題を解決する方法 まず、写真ファイル $file=$_FILES['userfile']; if(is_uploaded_file($file['tmp_name'])){$query=mysql_query("INSERT INTO gdb_banner() image_src) VALUES ('images/ {$file['name'

See all articles