And some times i'm getting java.net.MalFormedURLException what's the reason behind this and how can i resolve this..
My code is as follows..
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
/** Send URL to parse XML Tags */
URL sourceUrl = new URL(
"http://w3devadv.liveproj.com /api/apiRequest.php?Method=getdealdetails&DealId=2&SessionId=EA3JQ0RZJT4e66223143fc5");
/**
* Create handler to handle XML Tags (extends DefaultHandler)
*/
DealsHandler myXMLHandler = new DealsHandler();
xr.setContentHandler(myXMLHandler);
xr.parse(new InputSource(sourceUrl.openStream()));
In handler i'm writing the following code in startelement
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
currentElement = true;
if (localName.equalsIgnoreCase("data")) {
dealsdata = new DealsData();
} else if (localName.equalsIgnoreCase("dealdetails")) {
deals = new Deals();
} else if (localName.equalsIgnoreCase("title")) {
deals.title = attributes.getLocalName(0);
}
i'm getting the above said exception how can i resolve this.
0
A
答えて
2
あなたはこのエラーを取得しているに取得したプロトコルによってサポートされていない.....ため
"This exception is thrown when a program attempts to create an URL from an
incorrect specification."
0
"http://w3devadv.liveproj.com /api/apiRequest.php?Method=getdealdetails&DealId=2&SessionId=EA3JQ0RZJT4e66223143fc5"
おそらくURLのスペースが原因です。
1
をURLに文字列を渡す前に、どこでも、あなたがURLをフェッチし、それを使用しているあなたは、...標準のURL形式
このように文字列を変換することができます
String url = new String(str.trim().replace(" ", "%20").replace("&", "%26")
.replace(",", "%2c").replace("(", "%28").replace(")", "%29")
.replace("!", "%21").replace("=", "%3D").replace("<", "%3C")
.replace(">", "%3E").replace("#", "%23").replace("$", "%24")
.replace("'", "%27").replace("*", "%2A").replace("-", "%2D")
.replace(".", "%2E").replace("/", "%2F").replace(":", "%3A")
.replace(";", "%3B").replace("?", "%3F").replace("@", "%40")
.replace("[", "%5B").replace("\\", "%5C").replace("]", "%5D")
.replace("_", "%5F").replace("`", "%60").replace("{", "%7B")
.replace("|", "%7C").replace("}", "%7D"));
あなたはこの機能を使用することができます、あなたはエラーを克服し、あなたの文字列を動作させることができます。
私はあなたが答えを受け入れたことを知っていますが、これはまた私も思う他の人を助けることができるでしょう ありがとう。