我想从一个叫Zillow的工作对我来说网站的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> </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> </td>
</tr>
</table>
<div align="center">
<input name="submit" type="submit" value="Get Zestimate">
</div>
</form>
你可以看到,这只是一个简单的表格,发送到自身的权利? 但是,当我打去它从API拉数据,并显示它,但我看不出如何。 我会爱你可以提供任何帮助,谢谢!
基于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));
}
}
Nahhh ......这样是很容易:-)
建立两个功能,并使用它们像这样的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;
}