样本案例:
 调用方法:taobao.users.get
 提交参数:
         http://gw.api.taobao.com/router/rest
         app_key=10011201
         fields=nick
         format=xml
         method=taobao.users.get
         nicks=专营店
         sign_method=md5
         timestamp=2010-08-01 16:29:09
         v=2.0
         sign=16D29E5A7F4520E583B5F140553F1A44 写了如下delphi代码:
 var
    strXml:string;  //返回的值
    Params: TStrings; //post 使用的参数
 begin
    
    Params:=TStringList.Create;
    params.add(       );             // 这里应该怎么写???    strXml:=IdHTTP1.Post('http://gw.api.taobao.com/router/rest',Params);//访问的是淘宝正式环境 end;   请问post里的参数应该如何写,请高手帮忙。

解决方案 »

  1.   

    Post是按照HTTP协议组织协议头,然后提交给淘宝的后台。
      

  2.   

    //params.add( ); // 这里应该怎么写???
    //这里要这样写:params.Values['app_key'] := '10011201';
    params.Values['fields'] := 'nick';
    ... ...
      

  3.   

    另外楼主,我也在研究淘宝的API,目前也是没有什么进展,可否加QQ一起讨论?  Q:37409795
      

  4.   

    已经自行解决了,网上很难找delphi对于淘宝API的解决方法。自己摸索的经验也分享给大家。
    对于淘宝商家,淘宝会给一个开发接入API文档,这个要仔细看。
    所有的关键就是一个sign的得到,其他都很简单。
    对于没有任何经验的人,进入先须掌握三项知识点:1、理解API的含义,可以通过一个模拟工具进行了解:       http://open.taobao.com/api_tool/api_test.html
       案例:API类目:店铺API
             API    :taobao.shop.get
            数据环境:正式
            nick   : “某个淘宝店名”
       这样可以返回一个你要查的店名,如果没有,就返回错。再多多试验其他API2、delphi一个控件IdHTTP的方法post,这个掌握的要点是如何组织参数。
        例://本案例是有时效的,你自己去上面网址取参数
                 app_key=10011201
               fields=sid,cid,nick,title,desc,bulletin,pic_path,create,modified
               format=xml
               method=taobao.shop.get
               nick=万象书坊
                 sign_method=md5
               timestamp=2010-08-03 10:30:00
               v=2.0
               sign=B2A1A30AC75242B3AED414791F704BB5//实现代码如下    
    procedure TfrmTaobaoTest.Button1Click(Sender: TObject);
    var
      strXml:string;//返回值
      Params: TStrings;//post参数
    begin
        Params:=TStringList.Create;    Params.Values['app_key']:=AnsitoUtf8('10011201');//所有参数必须经过Utf8转换
        Params.Values['fields']:=AnsitoUtf8('sid,cid,nick,title,desc,bulletin,pic_path,create,modified');
        Params.Values['format']:=AnsitoUtf8('xml');
        Params.Values['method']:=AnsitoUtf8('taobao.shop.get');
        Params.Values['nick']:=AnsitoUtf8(trim('万象书坊');
        Params.Values['sign']:=AnsitoUtf8('B2A1A30AC75242B3AED414791F704BB5');
        Params.Values['sign_method']:=AnsitoUtf8('md5');
        Params.Values['timestamp']:=AnsitoUtf8('2010-08-03 10:30:00');
        Params.Values['v']:=AnsitoUtf8('2.0');    strxml:=IdHTTP1.post('http://gw.api.taobao.com/router/rest',Params);//这个是正式环境下的网址
        memo1.Text:=Utf8ToAnsi(strxml);//转换回Ansi,并通过memo1看返回值
    end;3、前2项进展顺利的话,就要学一下sign=B2A1A30AC75242B3AED414791F704BB5这个东西的来路了
        这个你和淘宝要一下开发文档,sign是他们自己构造的规则,一看就懂了。
        其中的一个加密用的函数md5();网上到处都是。  
      

  5.   

    学习了,正在研究淘宝API编程,有兴趣的可加QQ:22662845一起探讨
      

  6.   

    params.add('format=xml');
    params.add('app_key=10011201' );
    params.add('fields=nick' );
    params.add( 'method=taobao.users.get');
    params.add( 'nicks=专营店');
    params.add('sign_method=md5' );
    params.add( 'timestamp=2010-08-01 16:29:09');
    params.add(' v=2.0' );
    params.add('sign=16D29E5A7F4520E583B5F140553F1A44' );
    params.sort;
    然后拼接secret,加密,转为utf-8
     OK~~~ 
      

  7.   

    获取参数md5值后,如何继续得到sign呢?