Новости из Блогов Простой кодогенератор на JS

Discussion in 'Мировые новости. Обсуждения.' started by zeks1, 21 Apr 2013.

  1. zeks1

    zeks1 New Member

    Joined:
    11 Jan 2013
    Messages:
    73
    Likes Received:
    0
    Reputations:
    1
    Простой кодогенератор на JS

    http://bafoed.net/post/20308/
    19.04


    Привет.
    Этот пост не несет в себе ничего нового, просто делюсь простым скриптом.
    Скрипт предназначен для генерации кода из аргументов в строке запуска cURL. Для чего это нужно? Для ускорения написания некоторых программ, которые активно работают с интернетом.


    В последних версиях хрома в инспекторе появилась кнопка, которая позволяет копировать запрос как cURL строка. Выглядит этот пункт так:

    [​IMG]

    После копирования, в буфере появляется примерно такая строка:
    Эту строчку надо скопировать в скрипт и он сгенерирует следующий код:

    Code:
    <?php
    function curl($url, $headers, $post)
    {
    	$ch = curl_init($url);
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    	curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    	$response = curl_exec($ch);
    	curl_close($ch);
    	return $response;
    }
     
    $headers = array
    (
    	'Cookie' => 'remixlang=0; remixdt=0; remixrefkey=3dd1be1f57376b7f5f; remixseenads=1; remixsid=7fc4732d4af03745a7891833cfbae2add824a74eef6d40bd62fe0; audio_vol=58; remixflash=11.7.700; arp_scroll_position=5562',
     	'Origin' => 'http://vk.com',
     	'Accept-Encoding' => 'gzip,deflate,sdch',
     	'Host' => 'vk.com',
     	'Accept-Language' => 'ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4',
     	'User-Agent' => 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31',
     	'Content-Type' => 'application/x-www-form-urlencoded',
     	'Accept' => '*/*',
     	'Referer' => 'http://vk.com/im?peers=175277028&sel=175277028',
     	'X-Requested-With' => 'XMLHttpRequest',
     	'Connection' => 'keep-alive',
     	'Accept-Charset' => 'windows-1251,utf-8;q=0.7,*;q=0.3',
     
    );
     
    $post = array
    (
    	'act' => 'a_send',
    	'al' => '1',
    	'hash' => 'd82cdecf7730caf855',
    	'media' => '',
    	'msg' => '%41D%430%43F%438%448%438%20%43F%43E%43B%443%447%430%442%435%43B%44E%20%441%43B%43E%432%43E%20%431%430%444%43E%435%434%2E%43D%435%442%20%438%20%43F%43E%43B%443%447%438%20%43F%43E%434%430%440%43A%443%20%3A%33',
    	'title' => '',
    	'to' => '175277028',
    	'ts' => '1670227198',
     
    );
     
    curl('http://vk.com/al_im.php', $headers, $post);
    ?>
    Или такой
    Code:
    String urlParameters = "act=a_send&al=1&hash=d82cdecf7730caf855&media=&msg=%41D%430%43F%438%448%438%20%43F%43E%43B%443%447%430%442%435%43B%44E%20%441%43B%43E%432%43E%20%431%430%444%43E%435%434%2E%43D%435%442%20%438%20%43F%43E%43B%443%447%438%20%43F%43E%434%430%440%43A%443%20%3A%33&title=&to=175277028&ts=1670227198&";
    String request = "http://vk.com/al_im.php";
    URL url = new URL(request);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setDoInput(true);
    connection.setInstanceFollowRedirects(false);
    connection.setRequestMethod("POST");
     
    connection.setRequestProperty("Cookie", "remixlang=0; remixdt=0; remixrefkey=3dd1be1f57376b7f5f; remixseenads=1; remixsid=7fc4732d4af03745a7891833cfbae2add824a74eef6d40bd62fe0; audio_vol=58; remixflash=11.7.700; arp_scroll_position=5562");
    connection.setRequestProperty("Origin", "http://vk.com");
    connection.setRequestProperty("Accept-Encoding", "gzip,deflate,sdch");
    connection.setRequestProperty("Host", "vk.com");
    connection.setRequestProperty("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4");
    connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31");
    connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    connection.setRequestProperty("Accept", "*/*");
    connection.setRequestProperty("Referer", "http://vk.com/im?peers=175277028&sel=175277028");
    connection.setRequestProperty("X-Requested-With", "XMLHttpRequest");
    connection.setRequestProperty("Connection", "keep-alive");
    connection.setRequestProperty("Accept-Charset", "windows-1251,utf-8;q=0.7,*;q=0.3");
     
    connection.setRequestProperty("Content-Length", "" + Integer.toString(urlParameters.getBytes().length));
    connection.setUseCaches (false);
     
    DataOutputStream wr = new DataOutputStream(connection.getOutputStream ());
    wr.writeBytes(urlParameters);
    wr.flush();
    wr.close();
    connection.disconnect();

    В скрипте реализована Java и PHP, языки добавляются просто, думаю по коду сами разберетесь.
    Проверить работу, посмотреть и забрать сорцы можно тут: http://bafoed.net/curlparser.html

    P.S. Претензии по качеству кода принимаются, старался писать без костылей.