Guten Abend!
Ich mache derzeit in einer Schleife mehrere XML-Requests und übertrage diese per CURL. Leider schafft man es nicht, in einer Sekunde z.B. 2 solcher abzuarbeiten. Kann man die folgende Schleife optimieren, sodass mehrere Requests mit einer CURL-Connection möglich sind?
Ich mache derzeit in einer Schleife mehrere XML-Requests und übertrage diese per CURL. Leider schafft man es nicht, in einer Sekunde z.B. 2 solcher abzuarbeiten. Kann man die folgende Schleife optimieren, sodass mehrere Requests mit einer CURL-Connection möglich sind?
PHP:
class apicall {
private $EBAY_devID;
private $EBAY_appID;
private $EBAY_certID;
private $EBAY_server;
public function __construct($EBAY_devID, $EBAY_appID, $EBAY_certID, $EBAY_server, $EBAY_call) {
$this->EBAY_devID = $EBAY_devID;
$this->EBAY_appID = $EBAY_appID;
$this->EBAY_certID = $EBAY_certID;
$this->EBAY_server = $EBAY_server;
$this->EBAY_call = $EBAY_call;
}
public function sendHttpRequest($requestBody) {
$connection = curl_init ();
curl_setopt ( $connection, CURLOPT_URL, $this->EBAY_server );
curl_setopt ( $connection, CURLOPT_SSL_VERIFYPEER, "0" );
curl_setopt ( $connection, CURLOPT_SSL_VERIFYHOST, "0" );
curl_setopt ( $connection, CURLOPT_HTTPHEADER, array ( "X-EBAY-API-COMPATIBILITY-LEVEL: 543", "X-EBAY-API-DEV-NAME: " . $this->EBAY_devID, "X-EBAY-API-APP-NAME: " . $this->EBAY_appID, "X-EBAY-API-CERT-NAME: " . $this->EBAY_certID, "X-EBAY-API-CALL-NAME: " . $this->EBAY_call, "X-EBAY-API-SITEID: 77" ) );
curl_setopt ( $connection, CURLOPT_POST, "1" );
curl_setopt ( $connection, CURLOPT_POSTFIELDS, $requestBody );
curl_setopt ( $connection, CURLOPT_RETURNTRANSFER, "1" );
$response = curl_exec ( $connection );
curl_close ( $connection );
return $response;
}
}
$apicall = new apicall ( $EBAY_devID, $EBAY_appID, $EBAY_certID, $EBAY_server, "PlaceOffer" );
foreach ($autobid [$time] as $key => $value) {
$requestXmlBody = '<?xml version="1.0" encoding="utf-8" ?>';
$requestXmlBody .= '<PlaceOfferRequest xmlns="urn:ebay:apis:eBLBaseComponents">';
$requestXmlBody .= "<RequesterCredentials>";
$requestXmlBody .= "<eBayAuthToken>" . $autobid [$time][$key]["authcode"] . "</eBayAuthToken>";
$requestXmlBody .= "</RequesterCredentials>";
$requestXmlBody .= "<EndUserIP>" . $autobid [$time][$key]["ip"] . "</EndUserIP>";
$requestXmlBody .= "<BlockOnWarning>true</BlockOnWarning>";
$requestXmlBody .= "<AffiliateTrackingDetails>";
$requestXmlBody .= "<AffiliateUserID>" . $EBAY_id . "</AffiliateUserID>";
$requestXmlBody .= "<ApplicationDeviceType>Browser</ApplicationDeviceType>";
$requestXmlBody .= "<TrackingID></TrackingID>";
$requestXmlBody .= "<TrackingPartnerCode></TrackingPartnerCode>";
$requestXmlBody .= "</AffiliateTrackingDetails>";
$requestXmlBody .= "<ItemID>" . $autobid [$time][$key]["itemID"] . "</ItemID>";
$requestXmlBody .= "<Offer>";
$requestXmlBody .= "<Action>Bid</Action>";
$requestXmlBody .= "<MaxBid>" . $autobid [$time][$key]["maxbid"] . "</MaxBid>";
$requestXmlBody .= "<Quantity>1</Quantity>";
$requestXmlBody .= "<UserConsent>true</UserConsent>";
$requestXmlBody .= "</Offer>";
$requestXmlBody .= "</PlaceOfferRequest>";
$apicall->sendHttpRequest ( $requestXmlBody );
}