Commit cce7f198 authored by jan.koester's avatar jan.koester
Browse files

corrected html client

parent 90489bad
Loading
Loading
Loading
Loading
+10 −6
Changes for examples/httpclient.cpp: 10 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -106,13 +106,14 @@ int main(int argc, char** argv){
    std::string html;
    libhttppp::HttpResponse res;
    size_t len=recv,chunklen=0,hsize=0;

    bool chunked=false;
    int rlen=0;

    try {
      hsize=res.parse(data,len);
      if(strcmp(res.getTransferEncoding(),"chunked")==0){
          chunklen=readchunk(data,recv,--hsize);
          chunked=true;
      }else{
         rlen=res.getContentLength();
         html.resize(rlen);
@@ -121,7 +122,7 @@ int main(int argc, char** argv){
      std::cerr << e.what() << std::endl;
    };

    if(chunklen==0){
    if(!chunked){
      do{
        html.append(data+hsize,recv-hsize);
        rlen-=recv-hsize;
@@ -133,14 +134,17 @@ int main(int argc, char** argv){
    }else{
      size_t cpos=hsize;
      do{
        if((cpos+chunklen)<recv){
          html.append(data+cpos,chunklen);
            cpos+=chunklen;
            if(recv<chunklen){
              recv=srvsock->recvData(cltsock,data,16384);
          break;
        }else if(chunklen>recv){
          html.append(data+cpos,recv-cpos);
          chunklen-=(recv-cpos);
          cpos=0;
        }
        }while((chunklen=readchunk(data,recv,cpos))!=0);
      }while((chunklen=readchunk(data,recv,cpos))>0);
    }

    delete cltsock;
    delete srvsock;
    if(!html.empty())