#3 mario
Omlouvám se byla to úplná blbost. Pro http stránku místo https.get musí být http.get a url.
Příspěvky odeslané z IP adresy 78.80.244.–
Javascript Kód
const https = require('https');
const { SocksProxyAgent } = require('socks-proxy-agent');
const agent = new SocksProxyAgent('socks5h://127.0.0.1:9050');
https.get('https://nqieh33bhvzhm35l4qe4ifzbrbpxk4szwlu42wonqycvmqurlzptigyd.onion/api/v1/fees/recommended', {
agent
}, res => {
res.pipe(process.stdout);
});
vrací
Emitted 'error' event on ClientRequest instance at:
at onerror (*****/torapi/node_modules/agent-base/dist/src/index.js:117:21)
at callbackError (*****/torapi/node_modules/agent-base/dist/src/index.js:136:17)
at processTicksAndRejections (node:internal/process/task_queues:96:5) {
options: {
proxy: { host: '127.0.0.1', port: 9050, type: 5 },
destination: {
host: 'nqieh33bhvzhm35l4qe4ifzbrbpxk4szwlu42wonqycvmqurlzptigyd.onion',
port: 443
},
command: 'connect',
timeout: undefined
}
}
Process finished with exit code 1
pokud se url změní z https na http odpověď vypadá takto
node:_http_client:158
throw new ERR_INVALID_PROTOCOL(protocol, expectedProtocol);
^
TypeError [ERR_INVALID_PROTOCOL]: Protocol "http:" not supported. Expected "https:"
at new NodeError (node:internal/errors:371:5)
at new ClientRequest (node:_http_client:158:11)
at request (node:https:353:10)
at Object.get (node:https:387:15)
at Object.<anonymous> (*****/torapi/index.js:6:7)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12) {
code: 'ERR_INVALID_PROTOCOL'
}
PHP kód
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME );
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_PROXY, '127.0.0.1:9050');
curl_setopt($curl, CURLOPT_URL, "http://nqieh33bhvzhm35l4qe4ifzbrbpxk4szwlu42wonqycvmqurlzptigyd.onion/api/v1/fees/recommended");
echo(curl_exec($curl));
vrací očekávanou odpověď API
{"fastestFee":3,"halfHourFee":3,"hourFee":3,"minimumFee":1}
Zdravím.
Potřebuju získat data z API, které komunikuje jen přes TOR. Lokálně na portu 9050, běží TOR-proxy. V PHP je možné získat data z api za pomocí option:
CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME
Celý PHP Kód:
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME );
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_PROXY, '127.0.0.1:9050');
curl_setopt($curl, CURLOPT_URL, "http://neco.onion");
echo(curl_exec($curl));
V node.js je pak možné použít TOR proxy, ale jen pro stránky s normální doménou(ne .onion)
const https = require('https');
const { SocksProxyAgent } = require('socks-proxy-agent');
const agent = new SocksProxyAgent('socks5h://127.0.0.1:9050');
https.get('https://ifconfig.me', {
agent
}, res => {
res.pipe(process.stdout);
});
Je možné nastavit něco jako "CURLOPT_PROXYTYPE = CURLPROXY_SOCKS5_HOSTNAME" v node.js. Předem moc děkuji.
Zdravím. Pomocí pywebview jsem v pythonu vytvořil desktopovou aplikaci s PHP. Problém je, že na počítačích kde není nainstalované PHP se server nespustí. Je tady nějaká možnost jak připojit PHP k aplikaci tak, aby jela aplikace na všech počítačích? Díky za pomoc.
import os
import webview
webview.create_window('moje aplikace', 'http://localhost:8000')
os.system('php -S localhost:8000')
webview.start()
index.php je ve stejné složce.
Dobrý večer. Znovu píšu o radu týkající se stejného API. Problém je, že potřebuju z api dostat číslo faktury, jenomže to jde vždy udělat jen u jedné konkrétní objednávky. Potřebuji dostat číslo faktury posledních sta objednávek. Byla by tady nějaká možnost jak to udělat aniž bych musel posílat 100 requestů? Předem Děkuji za odpověď.
Dokumentace: https://webareal.docs.apiary.io/#reference/0/property-values-collection/get-order-info?console=1
Zdravím. Nemám s PHP žádnou zkušenost. Potřebuji dostat data z api platformy pro tvorbu eshopu. Napsal jsem kód v javascriptu a pak jsem zjistil, že jejich api nepodporuje CORS(Cross-origin-resource-sharing), takže má nejlepší možnost je použít PHP. Tenhle kód jsem dal dohromady díky jejich dokumentaci, ale vždy mi vyhodí{"message":"Unknown JSON error: 5"} našel by se tady někdo, kdo by mi pomohl. Předem děkuji.
<html>
<?php
$x;
$url = "https://api.webareal.cz/login";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
"X-Wa-api-token: token",
"Content-Type: application/json",
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$data = <<<DATA
{
"username": "jmeno",
"password": "heslo"
}
DATA;
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$resp = curl_exec($curl);
curl_close($curl);
var_dump($resp);
$token = $resp;
$url = "https://api.webareal.cz/orders";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
"X-Wa-api-token: token",
"Authorization: Bearer $token",
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$resp = curl_exec($curl);
curl_close($curl);
var_dump($resp);
$x = $resp;
?>
<script>
let a = <?php Print($x); ?>;
console.log(JSON.stringify(a))
</script>
</html>