我有两个参数传递URL链接的问题。任何人都可以帮助我吗?
private void FillDetails(String _userid,int _sporttype) {
al_TeamName=new ArrayList<String>();
try{
spf=SAXParserFactory.newInstance();
sp=spf.newSAXParser();
xr=sp.getXMLReader();
URL sourceUrl = new URL(
"http://10.0.2.2:2291/acd.asmx/Get_Teams?_userid ="+_userid & "_sporttype="+ _sporttype);
MyHandler mh=new MyHandler();
xr.setContentHandler(mh);
xr.parse(new InputSource(sourceUrl.openStream()));
setListAdapter(new MyAdapter());
}
catch(Exception ex)
{
}
}
当我使用此代码时,我得到null。如果我发送单个参数,那么它工作正常。 这是传递两个参数的URL的正确过程吗?
提前致谢..........
答案 0 :(得分:3)
更新的答案:
现在您的网址中有多处错误:
URL sourceUrl = new URL("http://10.0.2.2:2291/acd.asmx/Get_Teams?_userid =" +
_userid & "_sporttype="+ _sporttype);
=
标志+
变量与字符串其余部分之间没有_userid
。&
符号位于第二个字符串它应该是这样的:
URL sourceUrl = new URL("http://10.0.2.2:2291/acd.asmx/Get_Teams?_userid="
+ _userid + "&_sporttype=" + _sporttype);
原始答案:
您的第一个参数后,您目前有一个空格而不是=
个符号:
?_userid "+_userid
应该是
?_userid="+_userid
答案 1 :(得分:1)
解决。
URL sourceUrl = new URL("http://0.0.0.0/acd.asmx/GetList?Value1="+Value1+"&ID="+ID);
答案 2 :(得分:0)
"http://10.0.2.2:2291/acd.asmx/Get_Teams?_userid ="+_userid & "_sporttype="+ _sporttype);
你有一个&amp;在_userid之后,这可能是谁知道_userid上的内容。通常单身&amp;做二进制操作,所以你可能正在改变_userid的内容。另外,如果您还没有这样做,我建议您对REST标记进行URLE编码
我建议在开发过程中记录REST参数,并仔细检查它是否正确形成
更新:&amp;在引用之外,您需要使用+
"http://10.0.2.2:2291/acd.asmx/Get_Teams?_userid ="+_userid + "&_sporttype="+ _sporttype);
答案 3 :(得分:0)
如果你来到这里是因为你搜索了一个在 Kotlin 中工作的版本(像我一样),你可以使用这个函数来构建你的 URL:
import java.net.URL
// Your URL you want to append the query on
val url: String = "http://10.0.2.2:2291/acd.asmx/Get_Teams"
// The parameters you want to pass
val params: Map<String, String> = mapOf(
"_userid" to _user_id
, "_sporttype" to _sporttype
)
// The final build url. Standard encoding for URL is already utf-8
val final_url: URL = URL(
"$url?" // Don't forget the question-mark!
+ params.map {
"${it.key}=${it.value}"
}.joinToString("&")
)