當前位置:首頁 » 密碼管理 » 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 瀏覽:646
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:938
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:633
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:822
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:733
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1068
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:301
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:162
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:854
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:764