Hi ,

I have written a sample perl program (sample.pl) to fetch all the
environmental variables of my system.
I put this into cgi-bin folder of my apache .
then i fetch the page using "http://11.11.11.11/cgi-bin/sample.pl";  in my
machine
so when i hit the url , i get the above output on my webpage.

i send the same url in my curl application and try to fetch the output as
shown above..

i hope i didnt confuse the matter

the same url i am passing to curl



On Tue, Nov 19, 2013 at 7:34 PM, Fahad Ashfaque <[email protected]> wrote:

> The "Sample output" at the end of your message is actually the HTTP
> Request that *you* are sending to the server... Where is the output ?
>
> What URL you are trying to hit by the way ? Is this up on internet with a
> public ip/hostname ?
>
>
> On Mon, Nov 18, 2013 at 8:48 PM, Sunil Chandrasekharan <
> [email protected]> wrote:
>
>> Hi thanks for clarifying the issues..
>>
>>
>> 1.
>> I am adding the updated new program but with the same problem of not
>> getting complete output
>> As checked the http server is not sending content length ...the content
>> length is shown as -1
>>
>> struct pageInfo_t {
>>   char *data;
>>   size_t len;
>> };
>> static size_t HTTPData(void *buffer, size_t size, size_t nmemb, void
>> *userData)
>> {
>>  size_t length = (size * nmemb);
>>  struct pageInfo_t *page = (struct pageInfo_t *)userData;
>>  __android_log_print(ANDROID_LOG_DEBUG, "LOG_TAG", "\n data size=%zu
>> nmemb=%zu
>> ====== \n",size,nmemb);
>>  page->data = realloc(page->data,page->len + length +1);
>>   if(page->data == NULL)
>>   {
>>
>>           return 0;
>>     }
>>    memcpy(&page->data[page->len], buffer, length);
>>    page->len += length;
>>     page->data[page->len] = '\0';
>>     __android_log_print(ANDROID_LOG_DEBUG, "LOG_TAG", "\n Need to print
>> size : %zu ======
>> \n", length);
>>   return length;
>> }
>> jstring Java_com_samsung_jnitest_MainActivity_JNIGetWebpage( JNIEnv* env,
>>                                                jobject entryObject,
>>             jstring webpageJStr)
>> {
>>   CURL *curl;
>>   CURLcode res;
>>   auto struct pageInfo_t page;
>>
>>   long response_code = 0;
>>   double content_length = 0;
>>   const jbyte *webpage;
>>   jstring r = NULL;
>>   char *hostname, *username, *password;
>>   webpage = (*env)->GetStringUTFChars(env, webpageJStr, NULL);
>>
>>   if (webpage == NULL) {
>>       return NULL;
>>   }
>>     page.data = (char *)malloc(4096);
>>    page.len = 0;
>>    page.data[0] = '\0';
>>
>>    curl = curl_easy_init();
>>   if(curl)
>>   {
>>     curl_easy_setopt(curl, CURLOPT_URL, webpage);
>>     curl_easy_setopt(curl, CURLOPT_TIMEOUT, 100);
>>     curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 50);
>>     curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, HTTPData);
>>     curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&page);
>>     curl_easy_setopt(curl, CURLOPT_USERAGENT, "libcurl-agent/1.0");
>>     res = curl_easy_perform(curl);
>>
>>     if(res != CURLE_OK)
>>     {
>>      __android_log_print(ANDROID_LOG_DEBUG, "LOG_TAG",
>> "curl_easy_perform() failed: %s
>> \n", curl_easy_strerror(res));
>>      return (*env)->NewStringUTF(env,curl_easy_strerror(res));
>>     }
>>     else
>>
>>     {
>>       curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
>>        curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD,
>> &content_length);
>>        __android_log_print(ANDROID_LOG_DEBUG, "LOG_TAG", "\n OUTPUT:page
>> data(%d)======
>> \n", strlen(page.data));
>>       __android_log_print(ANDROID_LOG_DEBUG, "LOG_TAG", "\n
>> OUTPUT:content length(%lg)
>> ======\n", content_length);
>>       __android_log_print(ANDROID_LOG_DEBUG, "LOG_TAG", "\n
>> OUTPUT:content length(%zu)
>> ======\n", page.len);
>>
>>       __android_log_print(ANDROID_LOG_DEBUG, "LOG_TAG", "\n OUTPUT:%s
>> ======\n",
>> page.data);
>>
>>     }
>>
>>    }
>>
>>      /* always cleanup */
>>   (*env)->ReleaseStringUTFChars(env, webpageJStr, webpage);
>>         curl_easy_cleanup(curl);
>>         r =  (*env)->NewStringUTF(env,page.data);
>>         free(page.data);
>>         page.data = NULL;
>>         return r;
>> }
>> 2.
>> this i cross checked with the curl program given in the link :
>> http://curl.haxx.se/libcurl/c/getinmemory.html
>>
>> it is almost same...No Change at all now..
>>
>> Kindly let me know if something wrong i am doing?
>>
>>
>> 3.
>> This is the output that i want to get..  I am priniting the same lines
>> around 5 times to make a big ouput data. Then when i run the code i am
>> getting only 3 iterations of output... So as we discussed about a binary 0,
>> can you please tell me if there is some problem in the ouput lines?
>> Sample output :
>>
>>
>>
>>
>> COMSPEC="C:\Windows\system32\cmd.exe"
>> CONTEXT_DOCUMENT_ROOT="D:/xampp/cgi-bin/"
>> CONTEXT_PREFIX="/cgi-bin/"
>> DOCUMENT_ROOT="D:/xampp/
>> htdocs"
>> GATEWAY_INTERFACE="CGI/1.1"
>> HTTP_ACCEPT="text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
>> HTTP_ACCEPT_ENCODING="xxip,sdch"
>> HTTP_ACCEPT_LANGUAGE="en-US,en;q=0.8"
>> HTTP_CONNECTION="keep-alive"
>> HTTP_HOST="77.707.77.101"
>> HTTP_USER_AGENT="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, 
>> like Gecko) Chrome/31.0.1650.57 Safari/537.36"
>> MIBDIRS="D:/xampp/php/extras/mibs"
>> MYSQL_HOME="\xampp\mysql\bin"
>> OPENSSL_CONF="D:/xampp/apache/bin/openssl.cnf"
>> PATH="C:\Program Files\Intel\iCLS 
>> Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program
>>  Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program 
>> Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program 
>> Files\Java\jdk1.6.0_45\bin;;C:\Program Files\Java\jre6\bin;C:\Program 
>> Files\TortoiseSVN\bin;D:\Android-environment\swigwin-2.0.11\swigwin-2.0.11;D:\Android-environment\android-ndk-r9-windows-x86\android-ndk-r9;D:\Android-environment\adt-bundle-windows-x86-20130729\adt-bundle-windows-x86-20130729\sdk\platform-tools"
>> PATHEXT=".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC"
>> PHPRC="\xampp\php"
>> PHP_PEAR_SYSCONF_DIR="\xampp\php"
>> QUERY_STRING=""
>> REMOTE_ADDR="77.707.77.707"
>> REMOTE_PORT="711"
>> REQUEST_METHOD="GET"
>> REQUEST_SCHEME="http"
>> REQUEST_URI="/cgi-bin/printenv.pl"
>> SCRIPT_FILENAME="D:/xampp/cgi-bin/printenv.pl"
>> SCRIPT_NAME="/cgi-bin/printenv.pl"
>> SERVER_ADDR="77.707.77.707"
>> SERVER_ADMIN="postmaster@localhost"
>> SERVER_NAME="77.707.77.707"
>> SERVER_PORT="80"
>> SERVER_PROTOCOL="HTTP/1.1"
>> SERVER_SIGNATURE="<address>Apache/2.4.4 (Win32) OpenSSL/0.9.8y PHP/5.4.19 
>> Server at 77.707.77.707 Port 80</address>\n"
>> SERVER_SOFTWARE="Apache/2.4.4 (Win32) OpenSSL/0.9.8y PHP/5.4.19"
>> SYSTEMROOT="C:\Windows"
>> TMP="\xampp\tmp"
>> WINDIR="C:\Windows"
>>
>>
>>
>> -------------------------------------------------------------------
>> List admin: http://cool.haxx.se/list/listinfo/curl-library
>> Etiquette:  http://curl.haxx.se/mail/etiquette.html
>>
>
>
> -------------------------------------------------------------------
> List admin: http://cool.haxx.se/list/listinfo/curl-library
> Etiquette:  http://curl.haxx.se/mail/etiquette.html
>
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to