PHP cURL skrifköllum verða að skila fjölda afgreiddra bæta
Fylgdu bætafjöldasamningnum þegar þú neytir svarbúta frá proxy og greindu staðbundið skrifvillu frá misheppnuðu proxy-tengingu.
Proxyið skilar gögnum. Skrifkallið þitt skilar röngu gildi. Þá hættir libcurl, og kóðinn í kringum það tilkynnir enn eina „niðurhalsvilla í gegnum proxy“.
Kallið verður að tilkynna hversu mörgum mótteknum bætum það afgreiddi í raun. Að skila annarri tölu bendir til bilunar. Fyrir viljandi blokkerandi skrifviðtak getur brot litið svona út:
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:8080');
curl_setopt($handle, CURLOPT_WRITEFUNCTION,
function ($handle, $chunk) use ($sink) {
$written = fwrite($sink, $chunk);
return $written === false ? 0 : $written;
}
);Þetta gerir ráð fyrir að núverandi forrit eigi handfangið og skrifviðtakann. Misheppnað eða stutt skrif stöðvar frekar en að fullyrða hljóðlega að allt brotið hafi verið vistað. Óblokkerandi viðtak þarf viðeigandi biðminnis- og hlé/endurræsingarhönnun; litla brotið veitir enga slíka.
Teldu bæti, ekki birt stafi. Gögnin geta verið tvíundarleg eða hluti af fjölbæta textarunu. Eitt kall er ekki endilega ein lína, eitt JSON-skjal eða ein skilaboð frá þjónustunni.
Stigvaxandi þáttun þarf sitt eigið ástand milli kalla. Aftur á móti getur safnun hvers brots þar til lokið er verið rétt fyrir lítið takmarkað svar, en er ekki minnisstefna fyrir stóran eða endalausan straum.
Geymdu niðurstöðu flutningsins og sönnun um bilun kallsins. Staðbundin diskvilla eða stöðvun þáttara getur átt sér stað eftir að gild proxy-leið hefur verið sett. Ef þú ætlar að stöðva eftir forskeyti, merktu þá viljandi stöðvun kallsins sérstaklega. Að skipta um proxy-vistföng getur ekki lagað viðtak sem hætti að taka við gögnum.