首页 后端开发 php教程 HttpQueryInfo报错,该怎么处理

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 Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

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中Buffer的概念是什么 java中Buffer的概念是什么 Apr 28, 2023 pm 05:13 PM

1、概念使用JavaNIOBuffers与NIOChannel交互。从Channel中读取数据到buffers里,从Buffer把数据写入到Channels;必须对Buffer的三个属性进行控制,即capacities能力、position-location、limit限制。2、实例publicstaticvoidmain(String[]args){//生成一个长度为10的缓冲区IntBufferintBuffer=IntBuffer.allocate(10);for(inti=0;i

putchar和printf有什么区别 putchar和printf有什么区别 Aug 22, 2023 pm 01:55 PM

putchar和printf的区别:1、putchar的参数类型是int,printf的参数类型是字符串;2、putchar只能输出一个字符,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中使用Buffer进行IO流操作的方法和使用场景有哪些? Java中使用Buffer进行IO流操作的方法和使用场景有哪些? May 07, 2023 am 09:37 AM

使用Buffer进行I/O流操作除NIO外,使用Java进行I/O操作有两种基本方法:使用基于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