当前位置:首页 » 密码管理 » url访问webservice

url访问webservice

发布时间: 2022-05-17 12:12:32

A. 可以通过url调用webservice的,在android中,不使用第三方SDK,直接通过URL带参数能调用吗

可以哦,直接用HttpClient,http请求得到你在浏览器通过url带参数直接调用webservice的输出结果,对结果进行解析就行啦,如果是xml结构的解析起来就更方便了。
刚刚搜了下以前的代码,顺便贴上来,希望对你有帮助:
public static String httpPostWS(String serverURL, List<NameValuePair> params) {
HttpPost request = new HttpPost(serverURL);
String result = "";

try {
request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));

// 发送请求
HttpResponse httpResponse = new DefaultHttpClient()
.execute(request);

// 解析返回数据
if (httpResponse.getStatusLine().getStatusCode() != 404) {

// 获得webService的返回信息
result = EntityUtils.toString(httpResponse.getEntity());
}
} catch (UnsupportedEncodingException e) {
Log.e(LOG_TAG, e.toString());
} catch (ClientProtocolException e) {
Log.e(LOG_TAG, e.toString());
} catch (IOException e) {
Log.e(LOG_TAG, e.toString());
} catch (Exception e) {
Log.e(LOG_TAG, e.toString());
}

return result;
}

B. 如何通过浏览器访问web services

将 Web 服务部署到 Web 服务器。有关更多信息,请参见 XML Web services 发布和部署。
访问 Web 浏览器,并使用以下格式在地址栏中输入 Web 服务的 URL:

http://servername/apppath/webservicename.asmx

路径部分


服务器名称

在其上部署 Web 服务的服务器的名称。

应用程序路径

虚拟目录的名称以及 Web 应用程序路径的其余部分。

Web 服务名称.asmx

Web 服务 .asmx 文件的名称。

例如,假设您已发布了一项名为 StockServices 的 Web 服务。发布时,此服务的基 URL 为 http://<服务器名称>/apppath/StockServices.asmx。通过在浏览器的地址栏中输入此 HTTP-GET 请求,可以测试此服务:

http://<servername>/apppath/StockServices.asmx

作为对此请求的响应,服务器将显示 Web 服务的 HTML 说明页。
Web 服务的 HTML 说明页显示特定 Web 服务支持的所有 Web 服务方法。链接到所需的 Web 服务方法并输入必需的参数,以测试该方法并查看 XML 响应。
使用 HTTP-GET 在浏览器中直接测试 Web 服务方法
将 Web 服务部署到 Web 服务器。有关更多信息,请参见 XML Web services 发布和部署。
访问 Web 浏览器,并使用以下格式在地址栏中输入 Web 服务方法的 URL:

http://servername/vdir/webservicename.asmx/Methodname?parameter=value

参数


服务器名称

在其上部署 Web 服务的服务器的名称。

应用程序路径

虚拟目录的名称以及 Web 应用程序路径的其余部分。

Web 服务名称.asmx

Web 服务 .asmx 文件的名称。

方法名称

Web 服务公开的公共方法的名称。如果留为空白,则显示 Web 服务的说明页,其中会列出 .asmx 文件中提供的每个公共方法。(可选)

参数

方法所需要的任何参数的相应参数名称和值。如果留为空白,则显示 Web 服务的说明页,其中会列出 .asmx 文件中提供的每个公共方法。(可选)

注意:

此语法中的 Web 服务方法名区分大小写,但服务器、项目和 Web 服务名称不区分大小写。

例如,假设前一过程中的 StockServices Web 服务包含一个名为 GetQuote 的 Web 服务方法,该 Web 服务方法接受以股票符号作为参数,并以双精度浮点数的形式返回价格。在浏览器的地址栏中输入以下 HTTP-GET 请求,以测试此方法:
http://<服务器名称>/apppath/StockServices.asmx/GetStockQuote?tickerName=MSFT
服务器发送包含 XML 文档的响应,将在浏览器中显示该文档。对于 GetQuote 示例,XML 具有您请求的股票的当前价格。结果可能类似于:
<?xml version="1.0" ?>
<double>74.5</double><double>74.5</double>

C. 如何调用webservice接口

java调用WebService可以直接使用Apache提供的axis.jar自己编写代码,或者利用Eclipse自动生成WebService Client代码,利用其中的Proxy类进行调用。理论上是一样的,只不过用Eclipse自动生成代码省事些。
1、编写代码方式:
package com.yun.test;
import java.rmi.RemoteException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.PrefixedQName;
import org.apache.axis.message.SOAPHeaderElement;
import com.cezanne.golden.user.Exception;
import com.cezanne.golden.user.UserManagerServiceProxy;
import javax.xml.namespace.QName;
import java.net.MalformedURLException;
import javax.xml.rpc.ServiceException;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPException;

public class testWebService {
public static String getResult() throws ServiceException, MalformedURLException, RemoteException, SOAPException
{
//标识Web Service的具体路径
String endpoint = "WebService服务地址";
// 创建 Service实例
Service service = new Service();
// 通过Service实例创建Call的实例
Call call = (Call) service.createCall();
//将Web Service的服务路径加入到call实例之中.
call.setTargetEndpointAddress( new java.net.URL(endpoint) );//为Call设置服务的位置
// 由于需要认证,故需要设置调用的SOAP头信息。
Name headerName = new PrefixedQName( new QName("发布的wsdl里的targetNamespace里的url", "string_itemName") );
org.apache.axis.message.SOAPHeaderElement header = new SOAPHeaderElement(headerName);
header.addTextNode( "blablabla" );
call.addHeader(header);

// SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement("发布的wsdl里的targetNamespace里的url", "SoapHeader");
// soapHeaderElement.setNamespaceURI("发布的wsdl里的targetNamespace里的url");
// try
// {
// soapHeaderElement.addChildElement("string_itemName").setValue("blablabla");
// }
// catch (SOAPException e)
// {
// e.printStackTrace();
// }
// call.addHeader(soapHeaderElement);
//调用Web Service的方法
org.apache.axis.description.OperationDesc oper;
org.apache.axis.description.ParameterDesc param;
oper = new org.apache.axis.description.OperationDesc();
oper.setName("opName");
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg0"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg1"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg2"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
oper.setReturnClass(java.lang.String.class);
oper.setReturnQName(new javax.xml.namespace.QName("", "return"));
oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
oper.setUse(org.apache.axis.constants.Use.LITERAL);
oper.addFault(new org.apache.axis.description.FaultDesc(
new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url", "Exception"),
"Exception",
new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url", "Exception"),
true
));
call.setOperation( oper );
call.setOperationName(new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url", "opName"));
//调用Web Service,传入参数
String res = ( String ) call.invoke( new Object[]("arg0","arg1"));
System.out.println("===============");
return res;
}
/**
* @param args
*/
public static void main(String[] args) {
try {
System.out.println(getResult());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (ServiceException e) {
e.printStackTrace();
} catch (SOAPException e) {
e.printStackTrace();
}
}
}

2、利用Eclipse自动生成WebService client代码就容易多了:(由于还不会发图片,就用语言描述了,大家酬和看吧。。。)
首先,new project,选择other,在输入框中输入Web Service Client,选中搜索后的结果,点击Next,在Service definition中输入 WebService的发布地址,点击Finish
这样,WebService Client代码已经生成好了。
接下来写一个Test类,在main函数中输入如下代码:

String endpoint = "服务器的WebService的地址";
YourWebServiceNameProxy umsp = new YourWebServiceNameProxy (endpoint);
try {
String resultStr = umsp.opMethod("arg0","arg1");
System.out.println(resultStr);
} catch (Exception e) {
System.out.println("异常");
e.printStackTrace();
} catch (RemoteException e) {
System.out.println("RemoteException异常");
e.printStackTrace();
}
如果还有疑问的话还有视频,如果对你有帮助请采纳!

D. Java用HttpURLConnection访问webservice问题

要加的

HttpURLConnectionhuc=null;
Stringpassid=newString(BASE64EncoderStream.encode("username:password".getBytes()));
huc.setRequestProperty("authorization","basic"+passid);

E. 如何调用webservice

一、WebService在cs后台程序中的调用
A、通过命名空间和类名直接调用

示例:

WebService ws = new WebService();

string s = ws.HelloWorld();

B、通过添加WEB引用的方式调用,首先添加WEB引用,通过URL指向WEBSERVICE,

指定WEB引用名,假设为KK;

示例:

kk.WebService n = new kk.WebService();

string ss=n.HelloWorld();

二、WebService在前台页面的JS 调用方法

1、首先通过下面的方法把Webservice在前台引用进来

<asp:ScriptManager runat="server">
<Services>
<asp:ServiceReference Path="WebService.asmx" InlineScript="True" />
</Services>
</asp:ScriptManager>

2、然后就可以通过JS程序进行调用,示例如下:

<script type="text/jscript">
function a()
{
WebService.HelloWorld(onresult);
}
//这里的onresult是回调函数
function onresult(result)
{
alert(result);
}
function b()
{
WebService.add(1,2,onreturn)
}
function onreturn(result)
{
alert(result);
}
//下面的'context'是上下文,可以通过回到函数通过重载的方式获得;
function c()
{
WebService.div(1,1,onresultC,onerror,'context');
}
function onresultC(res,c)
{
alert(res);
alert(c);
}
//onerror是获得异常信息的回调函数,下面给出了获得异常信息的方法
function onerror(error)
{
var a="";
a=String.format("获取服务器端异常的具体类型:{0}\t\n获取详细的异常描述信息:{1}\t\n获取造成异常的:{2}\t\n获取服务器端异常的堆栈
跟踪信息:{3}\t\n获取一个布尔值,表示异常是否是由于网络连接超时造成的{4}",
error.get_exceptionType(),
error.get_message(),
error.get_statusCode(),
error.get_stackTrace(),
error.get_timedOut())
alert(a);
}
a();
b();
c();
</script>

F. webservice 能通过地址栏访问吗

直接在浏览器地址栏访问webservice的方法:

记得参数值要做url编码转换,尤其是包含汉字和其他符号字符的时候,一定要进行UrlEncode编码。

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:647
制作脚本网站 发布:2025-10-20 08:17:34 浏览:939
python中的init方法 发布:2025-10-20 08:17:33 浏览:634
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:823
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:734
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1069
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:302
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:163
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:855
python股票数据获取 发布:2025-10-20 07:39:44 浏览:765