2011-05-05 98 views
0

嗨,我用一个例子来缩短网址。但不能能够做到这一点,这是我的代码使用谷歌api缩短网址

package com.tinyurl; 
import java.io.IOException; 
import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import com.google.api.client.googleapis.GoogleHeaders; 
import com.google.api.client.googleapis.GoogleTransport; 
import com.google.api.client.http.HttpRequest; 
import com.google.api.client.http.HttpResponse; 
import com.google.api.client.http.HttpTransport; 
import com.google.api.client.json.GenericJson; 
import com.google.api.client.json.JsonHttpContent; 
import com.google.api.client.json.JsonHttpParser; 
import com.google.api.client.util.GenericData; 
public class tinyurl extends Activity implements OnClickListener { 
EditText original; 
TextView txt; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Button btn = (Button) findViewById(R.id.Button01); 

    original = (EditText) findViewById(R.id.edittext); 
    txt = (TextView) findViewById(R.id.TextView03); 
    btn.setOnClickListener(this); 
} 


@Override 
public void onClick(View v) { 

    final String GOOGL_URL = "https://www.googleapis.com/urlshortener/v1/url?key=AIzaSyAau1E_WrYwMiTNqhK5hgH0tyWudyahbOI"; 
    String tinyUrl = null; 
    String original = "http://www.google.com/"; 
    HttpTransport transport = GoogleTransport.create(); 
    GoogleHeaders defaultHeaders = new GoogleHeaders(); 
    transport.defaultHeaders = defaultHeaders; 
    transport.defaultHeaders.put("Content-Type", "application/json"); 
    transport.addParser(new JsonHttpParser()); 
    HttpRequest request = transport.buildPostRequest(); 
    request.setUrl(GOOGL_URL); 
    GenericData data = new GenericData(); 
    // data.put("longUrl", "http://www.google.com/"); 
    data.put("longUrl", original); 
    JsonHttpContent content = new JsonHttpContent(); 

    content.data = data; 
    request.content = content; 

    HttpResponse response = null; 
    try { 
     response = request.execute(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     Log.d("eception occured", e.toString()); 
    } 
    Result result = null; 
    try { 
     result = response.parseAs(Result.class); 
     Log.d("TinyUrl", result.shortUrl.toString()); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 

public class Result extends GenericJson { 

    public String shortUrl; 

} 

}

但事情是我在日志得到的是的java.net.UnknownHostException:www.googleapis.com

回答

0

啊,如果你得到UnknownHostException这意味着你的DNS服务器没有成功解析www.googleapis.com。我会检查确保你确实有一个可用的网络连接。