2009-07-07 8 views
5

私はzillowというWebサイトからAPIを取得しようとしていますが、私はWebの新機能です。彼らはそれを使用する方法をhereしようと説明しようとするが、私は彼らのフォーラムを見て失っていた。誰かがそこに「例」を投稿しましたが、コードがどこでAPIを呼び出すのかわかりません。基本的に私はあなたがそれをすることを単純な形で見ることができますzillow.com APIを使用してAPI呼び出しにデータを送信して戻す方法

<html xml:lang="en" lang="en"> 
<head> 
    <title></title> 
</head> 
<body> 
<h3><font face="Verdana, Arial, Helvetica, sans-serif">Get Property < # >Zestimates 
    from Zillow</a></font></h3> 
<form method="post" action="/Real-Estate/Zestimate.php" name="zip_search"> 
    <table align="center" width="618"> 
    <tr> 
     <td colspan="2"><font face="verdana, arial, sans-serif">Please specify the 
     Property address. </font></td> 

     <td width="205" align="left"> <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif"><#></a></font></div></td> 
    </tr> 
    <tr> 
     <td colspan="2"><font face="Verdana, Arial, Helvetica, sans-serif">Street</font>: 
     <input id="street2" type="text" maxlength="50" size="50" value="" name="street"/></td> 
     <td>&nbsp;</td> 
    </tr> 
    <tr> 
     <td colspan="2"><font face="verdana, arial, sans-serif">City, State or ZipCode:</font> 
     <input id="citystatezip3" type="text" maxlength="50" size="20" value="" name="citystatezip"/></td> 

     <td>&nbsp; </td> 
    </tr> 

    </table> 
    <div align="center"> 
    <input name="submit" type="submit" value="Get Zestimate"> 
    </div> 
</form> 

、ここでみんなの例から取られたソースコードは、アドレス可能とバックデータを取得するためにその情報を送信するフォームフィールドを取る必要があります自分自身に投稿しますか?しかし私がgoを打つと、それはAPIからデータを引き出して表示しますが、私はどのように見えません。 私はあなたが提供することができる任意のヘルプが大好きです、ありがとう!

+0

あなたが話しているフォーラム投稿にリンクできますか? –

答えて

5

http://www.zillow.com/howto/api/APIFAQ.htm#devkitに基づき、JavaScript APIはありません。これ(およびドメイン間の制限)のために、サーバー側の言語を使用する必要があります。私は単純なJavaの例を追加します。

編集:さて、ここに行きます。それはちょうど通りの住所と都市/州を取り、フォーマットされた値を返します。エラーチェックアウト左:

import java.text.NumberFormat; 

import org.w3c.dom.*; 
import org.xml.sax.*; 

import javax.xml.parsers.*; 

import javax.xml.transform.*; 
import javax.xml.transform.dom.*; 
import javax.xml.transform.stream.*; 

import java.io.*; 

import java.util.Currency; 

public class Zillow 
{ 
    private static final DocumentBuilderFactory dbFac; 
    private static final DocumentBuilder docBuilder; 
    static 
    { 
     try 
     { 
      dbFac = DocumentBuilderFactory.newInstance(); 
      docBuilder = dbFac.newDocumentBuilder(); 
     } 
     catch(ParserConfigurationException e) 
     { 
      throw new RuntimeException(e); 
     } 
    } 
    private static final String DEEP_URL = "http://www.zillow.com/webservice/GetDeepSearchResults.htm"; 
    private static final String ZESTIMATE_URL = "http://www.zillow.com/webservice/GetZestimate.htm"; 

    private static final String ZWSID = ...; 

    private static final NumberFormat nf = NumberFormat.getCurrencyInstance(); 

    // Returns Zestimate value for address. 
    public static String getValuation(String address, String cityStateZip) throws SAXException, IOException 
    { 
     Document deepDoc = docBuilder.parse(DEEP_URL + 
             "?zws-id=" + ZWSID + 
             "&address=" + address + 
             "&citystatezip=" + cityStateZip); 
     Element firstResult = (Element)deepDoc.getElementsByTagName("result").item(0); 
     String zpid = firstResult.getElementsByTagName("zpid").item(0).getTextContent(); 
     Document valueDoc = docBuilder.parse(ZESTIMATE_URL + 
              "?zws-id=" + ZWSID + 
              "&zpid=" + zpid); 
     Element zestimate = (Element)valueDoc.getElementsByTagName("zestimate").item(0); 
     Element amount = (Element)zestimate.getElementsByTagName("amount").item(0); 
     String currency = amount.getAttribute("currency"); 
     nf.setCurrency(Currency.getInstance(currency)); 
     return nf.format(Double.parseDouble(amount.getTextContent())); 
    } 

    public static void main(String[] args) throws Throwable 
    { 
     String address = args[0]; 
     String cityStateZip = args[1]; 
     System.out.println(getValuation(address, cityStateZip)); 
    } 
} 
+0

驚くばかりの男、ありがとう。私はPHPを使ってこれを行うために巻いています。 – thatryan

+3

クール。将来のサーチャーのためにPHPコードを投稿したいかもしれません。 –

+1

ありがとうMatthew Flaschen。あなたは完全なJavaコードを与えました。同じことを変更せずに使っていますが、うまく動作します。驚くばかり。!私はupvotingている.. –

0

Nahhh ...この方法は、2つの機能を構築したZillowのために、このようにそれらを使用

:-)はるかに簡単です。返される応答は非常に明白です。

string zWsid = "yourZwsid"; 
// sample API Call 
// http://www.zillow.com/webservice/GetSearchResults.htm?zws-id=<ZWSID>&address=2114+Bigelow+Ave&citystatezip=Seattle%2C+WA 

string response = string.Empty; 
int iZpid = 0; 
int iLotSizeSqFoot = 0; 
int iHomeValue = 0; 
float estimate = 0; 

try { 
    response = web_url("http://www.zillow.com/webservice/GetSearchResults.htm?zws-id=" + zWsid + "&address=" + addressTB.Text + "&citystatezip=" + CityStateZipTB.Text); 
} catch (Exception ex) { 
    MessageBox.Show("Exception occured! " + ex.ToString()); 
} 


// MessageBox.Show(response); 
try { 
    iZpid = Int32.Parse(parseTag(response, "zpid")); 
} 


/// you can make a lot of the calls and catch a lot of the values back just like this :-) 

///// Functions///// 

private string parseTag(string response, string tag) { 

    XmlDocument doc = new XmlDocument(); 
    doc.LoadXml(response); 
    XmlNodeList elemList = doc.GetElementsByTagName(tag); 
    string parsedTag = elemList[0].InnerXml; 
    return parsedTag; 

} 

private string web_url(string url) { 

    // Create a request for the URL. 
    WebRequest request = WebRequest.Create(url); 

    // If required by the server, set the credentials. 
    request.Credentials = CredentialCache.DefaultCredentials; 

    // Get the response. 
    WebResponse response = request.GetResponse(); 

    // Display the status. 
    // MessageBox.Show(((HttpWebResponse)response).StatusDescription); 
    // Get the stream containing content returned by the server. 
    Stream dataStream = response.GetResponseStream(); 

    // Open the stream using a StreamReader for easy access. 
    StreamReader reader = new StreamReader(dataStream); 

    // Read the content. 
    string responseFromServer = reader.ReadToEnd(); 

    // Display the content. 
    // MessageBox.Show(responseFromServer); 
    // Clean up the streams and the response. 
    reader.Close(); 
    response.Close(); 

    return responseFromServer; 
} 
関連する問題