0

プロジェクトでRapidShareAPIを使用したいのですが、どのように呼び出して結果を受け取ることができるかわかりません。

私はDelphi2009を使用しています。

4

1 に答える 1

2

HTTP リクエストを送信して結果を取得するだけです。

このリンクを試して、それがどのように機能するかを確認してください: getapicpu_v1

ここで、どの呼び出しを行うことができるかを確認できます: http://images.rapidshare.com/apidoc.txt

以下のコードはこれを出力します:

getapicpu_v1: 0,60000

nextuploadserver_v1: 669

FetchHTML() は、HTTP 要求の結果を取得するための単なるヘルパー関数です。プロキシを使用する場合、Internet Explorer で構成したプロキシが自動的に使用されます。

program RapidShareTest;

{$APPTYPE CONSOLE}

uses
  SysUtils, WinInet;

function FetchHTML(url:string):AnsiString;
var
  databuffer : array[0..4095] of AnsiChar;
  ResStr : AnsiString;
  hSession, hfile: hInternet;
  dwindex,dwcodelen,dwread,dwNumber:cardinal;
  dwcode : array[1..20] of char;
  res    : pAnsiChar;
  Str    : pAnsiChar;
begin
  ResStr := '';
  if pos('http://',lowercase(url))=0 then
    url := 'http://'+url;

  hSession := InternetOpen('InetURL:/1.0', INTERNET_OPEN_TYPE_PRECONFIG,nil, nil, 0);
  try
    if assigned(hsession) then
      begin
        hfile := InternetOpenUrl(hsession,pchar(url),nil,0,INTERNET_FLAG_RELOAD, 0);
        dwIndex  := 0;
        dwCodeLen := 10;
        HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE,@dwcode, dwcodeLen, dwIndex);
        res := pAnsiChar(@dwcode);
        dwNumber := sizeof(databuffer)-1;
        while (InternetReadfile(hfile,@databuffer,dwNumber,DwRead)) do
          begin
            if dwRead =0 then
              break;
            databuffer[dwread]:=#0;
            Str := pAnsiChar(@databuffer);
            resStr := resStr + Str;
          end;
        if assigned(hfile) then
          InternetCloseHandle(hfile);
      end;
  finally
    InternetCloseHandle(hsession);
  end;
  Result := resStr;
end;


begin
  Writeln('getapicpu_v1: ');
  WriteLn(FetchHTML('http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=getapicpu_v1'));
  WriteLn;

  Writeln('nextuploadserver_v1: ');
  WriteLn(FetchHTML('http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=nextuploadserver_v1'));
  WriteLn;

  ReadLn;

end.
于 2009-08-27T00:35:43.747 に答える