導航:首頁 > 編程語言 > java獲取header

java獲取header

發布時間:2021-11-02 23:29:08

A. 請教下java調用webservice介面時怎麼獲取header信息呢

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("", "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("", "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("", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);

B. java request.getHeader

request.getHeader("referer")獲取來訪者地址。只有通過鏈接訪問當前頁的時候,才能獲取上一頁的地址;
否則request.getHeader("referer")的值為null,通過window.open打開當前頁或者直接輸入地址,也為null。

C. java中如何設置HTTP協議的頭信息(header)

首先,我們先看一下http的頭信息到底是什麼:
HTTP(HyperTextTransferProtocol) 即超文本傳輸協議,目前網頁傳輸的的通用協議。HTTP協議採用了請求/響應模型,瀏覽器或其他客戶端發出請求,伺服器給與響應。就整個網路資源傳輸而 言,包括message-header和message-body兩部分。首先傳遞message- header,即http header消息。http header 消息通常被分為4個部分: general header, request header, response header, entity header。但是這種分法就理解而言,感覺界限不太明確,根據日常使用,大體分為Request和Response兩部分。
在通常的servlet/jsp應用中,我們只是從http的header中取得信息,如果要設置信息,需要用到HttpClient,具體的設置方法如下:
HttpResponse response = null;
HttpGet get = new HttpGet(url);
get.addHeader("Accept", "text/html");
get.addHeader("Accept-Charset", "utf-8");
get.addHeader("Accept-Encoding", "gzip");
get.addHeader("Accept-Language", "en-US,en");
get.addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22");
response = client.execute(get);
HttpEntity entity = response.getEntity();
Header header = entity.getContentEncoding();
if (header != null)
{
HeaderElement[] codecs = header.getElements();
for (int i = 0; i < codecs.length; i++)
{
if (codecs[i].getName().equalsIgnoreCase("gzip"))
{
response.setEntity(new GzipDecompressingEntity(entity));
}
}
}
return response;
其中,client為一個HttpClient的實力,創建方式如:
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory()));
schemeRegistry.register(new Scheme("https", 443, SSLSocketFactory.getSocketFactory()));
cm = new (schemeRegistry);
cm.setMaxTotal(200);
cm.setDefaultMaxPerRoute(2);
HttpHost googleResearch = new HttpHost("research.google.com", 80);
HttpHost wikipediaEn = new HttpHost("en.wikipedia.org", 80);
cm.setMaxPerRoute(new HttpRoute(googleResearch), 30);
cm.setMaxPerRoute(new HttpRoute(wikipediaEn), 50);
DefaultHttpClient client = new DefaultHttpClient(cm);

D. java soap的header怎麼獲取

有對應的QName,就能獲取了吧

public class SoapUtil{
SOAPPart initSoapPart throwsSOAPException{

SOAPMessage soapMessage = MessageFactory.newInstance.createMessage;
SOAPPart soapPart = soapMessage.getSOAPPart;
SOAPEnvelope soapEnvelope = soapPart.getEnvelope;
SOAPHeader soapHeader = soapEnvelope.getHeader;
SOAPElement cwmp = soapEnvelope.addNamespaceDeclaration;
SOAPElement xsi = soapEnvelope.addNamespaceDeclaration;
SOAPElement xsd = soapEnvelope.addNamespaceDeclaration;
SOAPElement enc = soapEnvelope.addNamespaceDeclaration;
SOAPElement id = soapHeader.addChildElement;
id.setTextContent;
return soapPart;
}
}

E. JAVA中request.getHeader(String param)獲取的什麼值

request.getHeader("user-agent")
獲得的是http協議定義的文件頭信息
可以根據這個文件頭信息判斷出訪問網站的用戶
是通過PC機登錄還是通過手機登錄

F. java web中獲取頭信息response.getLastHeader和response.getFirstHeader有什麼不一樣

http://www.blogjava.net/stevenjohn/archive/2012/09/26/388603.html
上面介紹的很詳細,看能不能幫到專你。屬

G. java web問題 filter中如何獲取header中的content–type值

是login.jsp被嵌入到iframe里吧?三種解決方案:
首頁菜單欄就做許可權控制,沒有許可權的菜單不展示
需要許可權的菜單點擊時先ajax請求後台判斷許可權,許可權通過了再載入頁面到iframe,否則頁面重定向到登錄頁
登錄頁加入js判斷該頁面是否處於iframe中,如果是則重寫parent.location到登錄頁

閱讀全文

與java獲取header相關的資料

熱點內容
php聊天室源代碼 瀏覽:127
數學表示數據的方式有哪些 瀏覽:102
linux驅動程序編譯 瀏覽:640
如何看網路結構 瀏覽:205
word宏文件 瀏覽:813
如何用閑錢掙錢在網路上掙快錢 瀏覽:449
蘋果六么回事 瀏覽:178
前饋型人工神經網路 瀏覽:245
登錄顯示網路錯誤是因為什麼 瀏覽:732
濱海如何學數控編程培訓 瀏覽:365
如何剪切圖片到別的文件 瀏覽:86
做網站要多少錢一個 瀏覽:407
ltetd是什麼網路 瀏覽:843
軟體投標文件模板 瀏覽:655
美國使用哪個app購物 瀏覽:83
足球波膽的app都有哪些 瀏覽:201
什麼網站看vtp電視 瀏覽:1
騰達ac9的初始無線密碼 瀏覽:718
微信那些人一天到晚發連接 瀏覽:141
為什麼文件夾放不到光碟裡面 瀏覽:269

友情鏈接