Как выполнить код PHP в Зеннопостере?

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 344
Благодарностей
298
Баллы
83
В общем, появилась необходимость проработать API на одном сайте, а его выдают в CURL. Как с ним работать, выполнить Get-запрос не знаю, зато нашёл сайт, который конвертирует в PHP. Отсюда, следующая задача,- как выполнить код PHP в Зеннопостере?

Не знаю, овчинка стоит ли выделки или нет, но, хотело бы разобраться.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
PHP поддерживается только в КодКреаторе.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 117
Баллы
113
В общем, появилась необходимость проработать API на одном сайте, а его выдают в CURL. Как с ним работать, выполнить Get-запрос не знаю, зато нашёл сайт, который конвертирует в PHP. Отсюда, следующая задача,- как выполнить код PHP в Зеннопостере?

Не знаю, овчинка стоит ли выделки или нет, но, хотело бы разобраться.
CURL как раз самое удобное в этой ситуации, его можно выполнять через экшен запуска внешней программы..
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 344
Благодарностей
298
Баллы
83
Что-то форум не работал, выдавало ошибку 502

так его можно и в С# кубике выполнять
Хотелось бы знать КАК?

CURL как раз самое удобное в этой ситуации, его можно выполнять через экшен запуска внешней программы..
Если можно, помогите?
Код вот такой, надо его через Get пропустить, получить данные и почти к следующему запросу. В общем, стандартные действие
PHP:
url -X GET http://site.ru/api//getx/1 -H ‘Authorization: Token 0p7uhGZxhwY4S0cZ’
Куда его вставлять, как выполнять? Мне всё равно в чём (хотя, в C# вроде бы должно быть круче?), главное, чтобы работало
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
  • Спасибо
Реакции: Dimionix

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113
-H -в curl - заголовок
-X GET - это значит что гет запрос... хз зачем он нужен можно выкинуть
т.е. весь твой гимор - над просто прописать заголовок

https://curl.haxx.se/docs/manpage.html
 
  • Спасибо
Реакции: Valiksim

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Класс

C#:
using SeasideResearch.LibCurlNet;

namespace ZennoLab.OwnCode
{
    public class http
    {
        public static IZennoPosterProjectModel _project;

        private static Easy easy;
        private static Random rand = new Random();
        private static string SockBuff;
        private static string CookieFile = "C:\\Cookie" + rand.Next(0, 9) + rand.Next(0, 9) + rand.Next(0, 9) + rand.Next(0, 9) + rand.Next(0, 9) + rand.Next(0, 9) + rand.Next(0, 9) + ".txt";
        public static string UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36";
        //public static string URL = @"";
        public static string _proxy;// = "127.0.0.1:8888";
        //public static string http_headers;
        //public string referer = "";
        public void Dispose()
        {
            ClearCookies();
        }
        public string getCookieFile()
        {
            return CookieFile;
        }
        public void CurlInit(IZennoPosterProjectModel project)
        {
            _project = project;
            Curl.GlobalInit((int)CURLinitFlag.CURL_GLOBAL_ALL);
        }
        public void ClearCookies()
        {
            if (File.Exists(CookieFile))
            {
                File.Delete(CookieFile);
            }
        }
       
        public string HTTPGet(string URL, string Proxy, string http_headers)
        {
            easy = new Easy();
            SockBuff = "";
            try
            {
                Easy.WriteFunction wf = new Easy.WriteFunction(OnWriteData);
               
                easy.SetOpt(CURLoption.CURLOPT_URL, URL);
                easy.SetOpt(CURLoption.CURLOPT_TIMEOUT, "60");
                easy.SetOpt(CURLoption.CURLOPT_PROXY, Proxy);
                easy.SetOpt(CURLoption.CURLOPT_WRITEFUNCTION, wf);
                easy.SetOpt(CURLoption.CURLOPT_USERAGENT, UserAgent);
                easy.SetOpt(CURLoption.CURLOPT_COOKIEFILE, CookieFile);
                easy.SetOpt(CURLoption.CURLOPT_COOKIEJAR, CookieFile);
                easy.SetOpt(CURLoption.CURLOPT_HTTPHEADER, http_headers);
                easy.SetOpt(CURLoption.CURLOPT_FOLLOWLOCATION, true);
                if (URL.Contains("https"))
                {
                    easy.SetOpt(CURLoption.CURLOPT_SSL_VERIFYHOST, 1);
                    easy.SetOpt(CURLoption.CURLOPT_SSL_VERIFYPEER, 0);
                }
               
                if (Proxy != "")
                {
                    easy.SetOpt(CURLoption.CURLOPT_PROXY, Proxy);
                    easy.SetOpt(CURLoption.CURLOPT_PROXYTYPE, CURLproxyType.CURLPROXY_HTTP);
                }
                easy.Perform();
                easy.Cleanup();
            }
            catch
            {
            }
            return SockBuff;
        }
       
        public string SafeString(string data)
        {
            return Curl.Escape(data, data.Length);
        }
        public string UnSafeString(string data)
        {
            return Curl.Unescape(data, data.Length);
        }
        public static Int32 OnWriteData(Byte[] buf, Int32 size, Int32 nmemb, Object extraData)
        {
            // Console.Write(System.Text.Encoding.UTF8.GetString(  buf));
            SockBuff = SockBuff + System.Text.Encoding.UTF8.GetString(buf);
            return size * nmemb;
        }
    }
}
вызов в кубике C#

C#:
var proxy = "127.0.0.1:8888";

http httpVar = new http();
httpVar.CurlInit(project);
httpVar.ClearCookies();
String
http_headers = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
http_headers = http_headers + "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36";
http_headers = http_headers + "Accept-Encoding: gzip,deflate,sdch";
http_headers = http_headers + "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4";
string htmlCode = httpVar.HTTPGet(url, proxy, http_headers);
return htmlCode;
 
  • Спасибо
Реакции: Dimionix и Valiksim

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 344
Благодарностей
298
Баллы
83
-H -в curl - заголовок
-X GET - это значит что гет запрос... хз зачем он нужен можно выкинуть
т.е. весь твой гимор - над просто прописать заголовок

https://curl.haxx.se/docs/manpage.html
Как всё легко и просто. Когда понимаешь. А когда не понимаешь, не помогают даже такие классные подсказки. Я там ничего не понял, к сожалению

https://forum.antichat.ru/threads/224186/
там не трудно под зенку переделать
Да, уж,- проще простого, только вот я не соображу никак, что с этим делать?

Класс

.......
вызов в кубике C#
.......
Не вижу, куда и как впихнуть мою ссылку, а также всё остальное, после ссылки? Token и цифры?

Предыдущий сайт, где Curl,- тоже тёмный лес.

В общем, в этих кодах я так и не разобрался, но, нашёл другое решение, прямо через кубик Get в Зенно
Там, оказывается надо проставить в первом поле ссылку, а в "Дополнительно", прописать вот так:
Код:
Content-Type: application/json
Authorization:Token srd09us0f0w0fwe9u
И получаю нужный запрос с сервера.

Всем Большущее СПАСИБО за помощь.
 
  • Спасибо
Реакции: donkasstro
Регистрация
03.11.2019
Сообщения
16
Благодарностей
2
Баллы
3
Как всё легко и просто. Когда понимаешь. А когда не понимаешь, не помогают даже такие классные подсказки. Я там ничего не понял, к сожалению


Да, уж,- проще простого, только вот я не соображу никак, что с этим делать?


Не вижу, куда и как впихнуть мою ссылку, а также всё остальное, после ссылки? Token и цифры?

Предыдущий сайт, где Curl,- тоже тёмный лес.

В общем, в этих кодах я так и не разобрался, но, нашёл другое решение, прямо через кубик Get в Зенно
Там, оказывается надо проставить в первом поле ссылку, а в "Дополнительно", прописать вот так:
Код:
Content-Type: application/json
Authorization:Token srd09us0f0w0fwe9u
И получаю нужный запрос с сервера.

Всем Большущее СПАСИБО за помощь.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)