0

BlackBerry Native Library を使用して、C++ でそのような機能を複製するにはどうすればよいですか?

$username="admin";
$password="admin";
$url="http://www.yourdomain.com/";
$cookie="cookie.txt";

$postdata = "log=". $username ."&pwd=". $password ."&wp-submit=Log%20In&redirect_to=".    
$url ."wp-admin/&testcookie=1";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url . "wp-login.php");
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url . "wp-admin/");
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
curl_close($ch);
echo $result;
exit;

通常、BlackBerry Native Library のリクエストは、例として次のようになります。

QNetworkAccessManager* networkAccessManager = new QNetworkAccessManager(this);

const QString queryUri = QString::fromLatin1("http://website.com/get.php?email=%1").arg(email);

QNetworkRequest request(queryUri);

QNetworkReply* reply = networkAccessManager->get(request);

情報や正しい方向へのポイントは素晴らしいでしょう!

4

1 に答える 1

1

libcurlは BB10 で利用でき、すでに SDK に含まれています。ファイルに追加LIBS += -lcurlすることを忘れないでください.pro

彼らのサイトにはたくさんの例があります。PHP コードから適切に変換されるいくつかのオプションを除いて、ほとんどそのように見えるはずです

#include <stdio.h>
#include <curl/curl.h>

int main(void)
{
  CURL *curl;
  CURLcode res;

  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
    /* example.com is redirected, so we tell libcurl to follow redirection */ 
    curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);

    /* Perform the request, res will get the return code */ 
    res = curl_easy_perform(curl);
    /* Check for errors */ 
    if(res != CURLE_OK)
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));

    /* always cleanup */ 
    curl_easy_cleanup(curl);
  }
  return 0;
}

いくつかの項目:

  • Curl は生データを想定しています。QStrings はすべての低レベルのものを隠します。データをchar*. 内部データでテストを行います。
  • これは C です。宿題をして、スレッドに適したものとそうでないものを理解し、クリーンアップの責任者を理解してください。
  • QNetworkAccessManager彼の友人は、まったく別の非同期 API を使用しています。libcurl を機能させるのに比べて、信じられないほど多くの苦労が予想されます。ただし、いくつかの利点があります。
    • これらの API はキューを実装しているため、無制限 (数千など) のタスクを開始できます。Qt/BB10 はリクエストを抑制して接続を失わないようにし、ホストごとにリクエストをグループ化してオーバーヘッドを節約します。</li>
    • これらの API はモバイル対応です。3G 以上の場合は転送が必要で、携帯電話での転送は必要ありませんか? 彼らはそれを行うことができます。
    • これらはネイティブ Qt API です。libcurl をしばらく使用すると、理解できるはずです。
于 2013-09-07T14:27:30.037 に答える