当前位置:首页 » 网页前端 » web返回
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

web返回

发布时间: 2022-02-06 13:59:57

⑴ webservice怎么返回数据

如果你不会webservice 那随便新建一个 web服务里面自带的方法 返回值string 这个就是返回值了

如果你不会调用 如果是c#就直接添加引用 如果是服务的话 直接构造httppost就行了.

⑵ Javaweb返回给Android客户端json中文字符乱码

JavaWeb的各种中文乱码终极解决方法:一、Servlet输出乱码1. 用servlet.getOutStream字节流输出中文,假设要输出的是String str ="测试中文"。1.1 若是本地服务器与本地客户端这种就不用说了,直接可以out.write(str.getBytes())可以输出没有问题。因为服务器中用str.getBytes()是采用默认本地的编码,比如GBK。而浏览器也解析时也用本地默认编码,两者是统一的,所以没有问题。1.1 若服务器输出时用了, out.write(str.getBytes("utf-8"))。而本地默认编码是GBK时(比例在中国),那么用浏览器打开时就会乱码。因为服务器发送过来的是utf-8的1010数据,而客户端浏览器用了gbk来解码,两者编码不统一,肯定是乱码。当然,你也可以自己将客户端浏览器的编码手工调用下(IE菜单是:查询View->编码encoding->utf-8),但是这种操作很烂,最好由服务器输出响应头告诉,浏览器用哪种编码来解码。所以要在服务器的servlet中,增加response.setHeader("content-type","text/html;charset=utf-8"),当然也可直接用简单的response.setContentType("text/hmtl;charset=utf-8")。两种的操作是一样一样的。2. 用servlet.getWirter字符流输出中文,假设要输出的是String str ="测试中文乱码"。2.1 若写成out.print(str)输出时,客户端浏览器显示的将全是多个?????的字符,代表在编码表中肯定就找不到相应的字符来显示。原因是:servlet.getWriter()得到的字符输出流,默认对字符的输出是采用ISO-8859-1,而ISO-8859-1肯定是不支持中文的。所以肯定要首先要做的第一件事:是要将服务器对象输出字符能支持中文的。其次服务器向客户端写回的响应头要告诉客户端是用了哪种编码表进行编码的。而实现这两个需求,只需要response.setContentType("text/hmtl;charset=utf-8")。就搞定了。特别注意:response.setContentType("text/html;charset=utf-8")要放在PrintOut out = response.getWriter()代码的前面,否则只是有告诉客户端用什么码表编码的功能,而服务器端还是用ISO-8859-1编码了。再特别提示下:在同一Servlet中的doGet或doPost方法中,不能既用response.getOutputStream又用response.getWriter,因为这两种response的响应输出字节流与字符流是冲突的,只能用其一。二、Servlet文件下载,中文乱码情况。关键是下载时响应头 content-disposition中attachment;filename=文件名。这个文件名filename不能是含有中文字符串的,要用URLEncoding编码进行编码,才能进行进行http的传输。三、Servlet的response增加addCookie,cookie中value的中文码问题解决方法。若想将cookie中存放中文的值,必须用Base64编码后,发给客户浏览器端进入存储。而下次客户端浏览访问是带回来的cookie中的值,是经过Base64编码的,所以需要用Base64解码即可。 Base64编码主要是解决将特殊字符进行重新编码,编码成a-b、A-B、0-9、+与/,字符52,10个数字与一个+,一个/ 共64个字符。它的原理是将原来3个字节的内容编码成4个字节。主要是取字节的6位后,在前面补00组成一个新的字节。所以这样原来的3个字节共24,被编码成4个字节32位了。四、获取请求参数乱码GET方式的乱码:如CN,直接用request.getParameter得到的字符串strCN将会乱码,这也是因为GET方式是用http的url传过来的默认用iso-8859-1编码的,所以首先得到的strCn要再用iso-8859-1编码得到原文后,再进行用utf-8(看具体页面的charset是什么utf-8或gbk)进行解码即可。new String(strCn.getBytes(“ISO-8859-1”),“UTF-8”);Javaweb返回给Android客户端json中文字符乱码

⑶ 被iptable禁的IP访问web返回什么状态码

被iptables禁止访问的请求走不到web服务器上
所以没有返回的状态码
如果禁用使用的是REJECT,则客户端可以收到REST响应
如果禁用使用的是DROP,则客户端什么都收不到,最后超时

⑷ Javaweb返回给Android客户端json中文字符乱码

JavaWeb的各种中文乱码终极解决方法:
一、Servlet输出乱码
1.
用servlet.getOutStream字节流输出中文,假设要输出的是String
str
="测试中文"。
1.1
若是本地服务器与本地客户端这种就不用说了,直接可以out.write(str.getBytes())可以输出没有问题。因为服务器中用str.getBytes()是采用默认本地的编码,比如GBK。而浏览器也解析时也用本地默认编码,两者是统一的,所以没有问题。
1.1
若服务器输出时用了,
out.write(str.getBytes("utf-8"))。而本地默认编码是GBK时(比例在中国),那么用浏览器打开时就会乱码。因为服务器发送过来的是utf-8的1010数据,而客户端浏览器用了gbk来解码,两者编码不统一,肯定是乱码。当然,你也可以自己将客户端浏览器的编码手工调用下(IE菜单是:查询View->编码encoding->utf-8),但是这种操作很烂,最好由服务器输出响应头告诉,浏览器用哪种编码来解码。所以要在服务器的servlet中,增加response.setHeader("content-type","text/html;charset=utf-8"),当然也可直接用简单的response.setContentType("text/hmtl;charset=utf-8")。两种的操作是一样一样的。
2.
用servlet.getWirter字符流输出中文,假设要输出的是String
str
="测试中文乱码"。
2.1
若写成out.print(str)输出时,客户端浏览器显示的将全是多个?????的字符,代表在编码表中肯定就找不到相应的字符来显示。原因是:servlet.getWriter()得到的字符输出流,默认对字符的输出是采用ISO-8859-1,而ISO-8859-1肯定是不支持中文的。所以肯定要首先要做的第一件事:是要将服务器对象输出字符能支持中文的。其次服务器向客户端写回的响应头要告诉客户端是用了哪种编码表进行编码的。而实现这两个需求,只需要response.setContentType("text/hmtl;charset=utf-8")。就搞定了。特别注意:response.setContentType("text/html;charset=utf-8")要放在PrintOut
out
=
response.getWriter()代码的前面,否则只是有告诉客户端用什么码表编码的功能,而服务器端还是用ISO-8859-1编码了。再特别提示下:在同一Servlet中的doGet或doPost方法中,不能既用response.getOutputStream又用response.getWriter,因为这两种response的响应输出字节流与字符流是冲突的,只能用其一。
二、Servlet文件下载,中文乱码情况。
关键是下载时响应头
content-disposition中attachment;filename=文件名。这个文件名filename不能是含有中文字符串的,要用URLEncoding编码进行编码,才能进行进行http的传输。
三、Servlet的response增加addCookie,cookie中value的中文码问题解决方法。若想将cookie中存放中文的值,必须用Base64编码后,发给客户浏览器端进入存储。而下次客户端浏览访问是带回来的cookie中的值,是经过Base64编码的,所以需要用Base64解码即可。
Base64编码主要是解决将特殊字符进行重新编码,编码成a-b、A-B、0-9、+与/,字符52,10个数字与一个+,一个/
共64个字符。它的原理是将原来3个字节的内容编码成4个字节。主要是取字节的6位后,在前面补00组成一个新的字节。所以这样原来的3个字节共24,被编码成4个字节32位了。
四、获取请求参数乱码
GET方式的乱码:
如<a
href=”/demo5/servlet/RD2?name=中国”>CN</a>,直接用request.getParameter得到的字符串strCN将会乱码,这也是因为GET方式是用http的url传过来的默认用iso-8859-1编码的,所以首先得到的strCn要再用iso-8859-1编码得到原文后,再进行用utf-8(看具体页面的charset是什么utf-8或gbk)进行解码即可。new
String(strCn.getBytes(“ISO-8859-1”),“UTF-8”);

⑸ webservice返回html怎么处理

好像是解析xml的jar包问题,javax.xml.parsers.SAXParser.parse方法应该不使用jdk自带的xml解析jar包,如果是使用jdk1.4+tomcat5.0的话,通常在jre和tomcat里加入一个endorsed目录,即(如jdk1.4.2\jre\lib\endorsed)和tomcat(如$Tomcat_home$\common\endorsed)。里面放上专用的xml解析jar包,如xmlsec.jar和xml-api.jar。如果是jdk1.5+tomcat5.5的话应该就不存在这个问题了。

⑹ excel导入网页数据时,web未返回任何数据

Excel导入外部数据-新建WEB查询
解决方案:
通过在EXCEL中设置相关属性来达到要求。
1、点--菜单--视图--工具栏--外部数据,调出外部数据的工具条,点“数据区域属性”。
2、在新窗口中,在“数据区域中的行数需刷新而更改的方式”中选择:
建议:
a.为新数据插入单元格,并删除没有使用的单元格;
b.为新数据插入整行,清除没有使用的单元格。

⑺ .net webservice 返回dateset java如何读取

java 访问.net webservice返回的数据集

1. 概述

很多正在开发或者打算开发XML Web Services的程序员都问过这样的一个问题:"我的WebService返回的结果是一个DataSet类型的对象,但如果我的客户端不是用.NET写的(因而没有内建的DataSet类型),那该如何调用这个WebService并访问DataSet中的数据呢?"。

对于这个问题,首先应该说的是:1)在多种语言共存的编程环境下,是不适合使用类似DataSet这种只属于特定语言的数据类型的。不管是在XMLWebServices还是CORBA的环境中,都应该尽量使用简单数据类型以及简单数据类型的数组。2)应当很谨慎的决定是否需要通过WebService来返回大量数据。由于网络传输的开销既包括HTTP连接建立的时间,也包括传送数据的时间,因此需要在减少访问服务器次数和减少网络传输量之间寻找一个合适的平衡。如非必须,则不适合通过WebService传送含有几十条或者几百条数据的数据表。

然后,就问题本身而言,.NET WebServices返回的DataSet类型是可以直接被其他非.NET的客户端解析的,因为即便是DataSet类型的返回值,也会被表达成XML格式再进行传输。下面的例子就是一个返回类型为DataSet的WebMethod,及其被调用后返回的XML格式数据:

表1. 返回类型为DataSet的Web Method
[WebMethod]
public DataSet GetPersonData()
{
DataTable table=new DataTable("Person");
table.Columns.Add("Name");
table.Columns.Add("Gender");
table.Rows.Add(new string[2]{"Alice","Female"});
table.Rows.Add(new string[2]{"Bob","Male"});
table.Rows.Add(new string[2]{"Chris","Male"});

DataSet dataset=new DataSet("PersonTable");
dataset.Tables.Add(table);
return dataset;
}

表2. 被格式化成XML的DataSet
<?xml version="1.0"encoding="utf-8"?>
<DataSetxmlns="http://tempuri.org/">
<xs:schema id="PersonTable" xmlns=""xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="PersonTable"msdata:IsDataSet="true" msdata:Locale="zh-CN">
<xs:complexType>
<xs:choicemaxOccurs="unbounded">
<xs:element name="Person">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string"minOccurs="0" />
<xs:element name="Gender" type="xs:string"minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgramxmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<PersonTable xmlns="">
<Person diffgr:id="Person1" msdata:rowOrder="0"diffgr:hasChanges="inserted">
<Name>Alice</Name>
<Gender>Female</Gender>
</Person>
<Person diffgr:id="Person2" msdata:rowOrder="1"diffgr:hasChanges="inserted">
<Name>Bob</Name>
<Gender>Male</Gender>
</Person>
<Person diffgr:id="Person3" msdata:rowOrder="2"diffgr:hasChanges="inserted">
<Name>Chris</Name>
<Gender>Male</Gender>
</Person>
</PersonTable>
</diffgr:diffgram>
</DataSet>

从上面的例子可以看出,直接使用DataSet作为返回类型,其结果是相当复杂的,其中不但包含了DataSet中的数据,还包括了数据更改的信息,以及DataSet的Schema。虽然有些工具能够生成一个类似DataSet的客户端类型,但无论是直接解析复杂的XML还是使用类似DataSet的类,都不够直接不够清晰。

解决这个问题的方案有两种:

1)用简单数据类型构造自定义类型,用每一个自定义类型对象封装数据集中的一行,将自定义类型对象的数组(Array)返回客户端;由于是用简单数据类型定义,客户端能够完全不变的还原出自定义类型的定义;

2)用DataSet.WriteXML()方法将数据集中的数据提取成XML格式,并以字符串的形式返回给客户端,再由客户端解析XML字符串,还原出数据。由于使用WriteXML()的时候能够过滤掉冗余信息,返回的内容和图表2中的内容相比大大简化了。

2. 创建.NET Web Services,返回数据集合

借助于Visual Studio.NET,只需编写Web Method本身的代码,即可非常快速的创建可以实用的WebServices:

表3. 用.NET实现的XML Web Services
[WebMethod]
public Person[] GetPersons()
{
Person Alice=newPerson("Alice","Female");
Person Bob=newPerson("Bob","Male");
Person Chris=newPerson("Chris","Female");
Person Dennis=newPerson("Dennis","Male");

return newPerson[]{Alice,Bob,Chris,Dennis};
}

[WebMethod]
public string GetPersonTable()
{
DataTabletable=new DataTable("Person");
table.Columns.Add("Name");
table.Columns.Add("Gender");
table.Rows.Add(new string[2]{"Alice","Female"});
table.Rows.Add(new string[2]{"Bob","Male"});
table.Rows.Add(new string[2]{"Chris","Female"});
table.Rows.Add(new string[2]{"Dennis","Male"});
table.Rows.Add(newstring[2]{"Eric","Male"});

DataSetdataset=new DataSet("PersonTable");
dataset.Tables.Add(table);

System.Text.StringBuilderstrbuilder=new System.Text.StringBuilder();
StringWriter writer=new StringWriter(strbuilder);
dataset.WriteXml(writer,System.Data.XmlWriteMode.IgnoreSchema);

returnstrbuilder.ToString();
}

在上面的代码中,函数GetPersons()和GetPersonTable()分别对应于"1.概述"中所提到的两种解决方案。其中,Person类型就是用于封装数据集中一行数据的自定义的数据类型:

表4. 自定义类型Person
[Serializable]
public class Person
{
public Person()
{
}

public Person(stringname,string gender)
{
this.Name=name;
this.Gender=gender;
}

public string Name="";
public stringGender="";
}

⑻ webservice返回的xml怎么解析

webservice返回的xml解析方法:

一般来说,调用webService通常需要几个步骤,在调用之前,首先需要下载Soap的jar包。

1、参数设置:上面说到的几个参数都要先设置,这主要依赖于要调用的web'Service的网址:

//命名空间

StringnameSpace="http://WebXml.com.cn/";

//调用的方法名称

StringmethodName="getDetailInfoByTrainCode";

//EndPoint

StringendPoint="http//webservice.webxml.com.cn/WebServices/TrainTimeWebService.asmx";

//SOAPAction

StringsoapAction="http//WebXml.com.cn/getDetailInfoByTrainCode";

2、指定命名空间与调用方法名

//指定WebService的命名空间和调用的方法名

SoapObjectrpc=newSoapObject(nameSpace,methodName);

3、设置参数:

//设置需调用WebService接口需要传入的两个参数TrainCode、userId

rpc.addProperty("TrainCode",params[0]);

rpc.addProperty("UserID","");

4、生成调用WebService方法的SOAP请求信息

//生成调用WebService方法的SOAP请求信息,并指定SOAP的版本

=newSoapSerializationEnvelope(SoapEnvelope.VER12);

envelope.bodyOut=rpc;

5、调用WebService方法

try{

//调用WebService

transport.call(soapAction,envelope);

}catch(Exceptione){

e.printStackTrace();

}

6、解析WebService中的DataSet数据

SoapObjectsoap1=(SoapObject)object.getProperty("");

SoapObjectchilds=(SoapObject)soap1.getProperty(1);

SoapObjectsoap2=(SoapObject)childs.getProperty(0);

///

for(inti=0;i<soap2.getPropertyCount();i++){

SoapObjectsoap3=(SoapObject)soap2.getProperty(i);

///

Infoinfo=newInfo();

info.setStation(soap3.getProperty(0).toString());

info.setArriveTime(soap3.getProperty(1).toString());

info.setStartTime(soap3.getProperty(2).toString());

info.setKm(soap3.getProperty(3).toString());

Raininfo.add(info);

//result=soap3.getProperty(3).toString();

}

数据格式如下:

⑼ 求教Webservice能否返回Document类型

WebService 服务可以返回任何可序列化的对象.本文代码给出返回基本数据类型及实体类结构示例和调用代码示例.
WebService代码如下:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;
namespace StudentServer
{
/// <summary>
/// 本类实现WebService服务
/// 提供对各种数据类型的返回例子
/// 包括:
/// 基本数据类型(string,ini,bool,long,float等)
/// 类结构型(class),必须是可序列化的类
/// DataSet类型
/// </summary>
public class Demo : System.Web.Services.WebService
{
public Demo()
{
//CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的
InitializeComponent();
}
#region 组件设计器生成的代码

//Web 服务设计器所必需的
private IContainer components = null;

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if(disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}

#endregion
// WEB 服务示例
// HelloWorld() 示例服务返回字符串 Hello World
// 若要生成,请取消注释下列行,然后保存并生成项目
// 若要测试此 Web 服务,请按 F5 键
/// <summary>
/// 字符串型
/// </summary>
/// <returns>Hello World</returns>
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
/// <summary>
/// 整型
/// </summary>
/// <returns>Int</returns>
[WebMethod]
public int GetInt()
{
return 1234;
}

/// <summary>
/// 布尔型
/// </summary>
/// <returns>Bool</returns>
[WebMethod]
public bool GetBool()
{
return true;
}
/// <summary>
/// 返回实体类
/// 必须是已序列化的类
/// </summary>
/// <returns>学生类</returns>
[WebMethod]
public Student GetStudent()
{
Student stu = new Student();
stu.Name = "张三";
stu.Age = 25;
stu.Sex = true;
return stu;
}
/// <summary>
/// 返回DataSet数据类型
/// </summary>
/// <returns>DataSet</returns>
[WebMethod]
public DataSet GetDataSet()
{
DataSet ds = new DataSet();
return ds;
}
}

//指示下面的类可序列化
/// <summary>
/// 学生基本信息类
/// </summary>
[Serializable]
public class Student
{
/// <summary>
/// 构造函数
/// </summary>
public Student()
{
}
private string name;
/// <summary>
/// 姓名
/// </summary>
public string Name
{
get
{
return name;
}
set
{
name=value;
}
}
private bool sex;
/// <summary>
/// 性别--布尔型变量真为女,假为男
/// </summary>
public bool Sex
{
get
{
return sex;
}
set
{
sex=value;
}
}
private int age;
/// <summary>
/// 年龄
/// </summary>
public int Age
{
get
{
return age;
}
set
{
age=value;
}
}
}
#endregion
}

调用WebService服务示例代码如下:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using StudentClient.localhost;
namespace StudentClient
{

/// <summary>
/// 调用学生信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnStu_Click(object sender, System.EventArgs e)
{
//实例化服务类
Demo dm = new Demo();
//调用返回实体类服务方法
Student stu = dm.GetStudent();
txtName.Text = stu.Name;
txtSex.Text = (stu.Sex==false?"女":"男");
txtAge.Text = stu.Age.ToString();

}
/// <summary>
/// DataSet数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnDataSet_Click(object sender, System.EventArgs e)
{
//实例化服务类
Demo dm = new Demo();
txtOther.Text = dm.GetDataSet().Tables.Count.ToString();
}
/// <summary>
/// 返回字符串
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnHello_Click(object sender, System.EventArgs e)
{
//实例化服务类
Demo dm = new Demo();
txtOther.Text = dm.HelloWorld();
}
/// <summary>
/// 返回整型
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnInt_Click(object sender, System.EventArgs e)
{
//实例化服务类
Demo dm = new Demo();
txtOther.Text = dm.GetInt().ToString();
}
/// <summary>
/// 返回布尔型
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnBool_Click(object sender, System.EventArgs e)
{
//实例化服务类
Demo dm = new Demo();
txtOther.Text = dm.GetBool().ToString();
}
}
}
也可以用过 xmlinclude申明实体类
[XmlInclude(typeof(Student))] //一定要加上 xmlinclude这一句,实体类是可序列化的
[WebMethod]
这里是类方法

⑽ 如何让WebServer返回指定XML内容

/*CheckLogin服务*/
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Configuration;
using System.Data;
using System.Data.sqlClient;
using mysql.SQL;
using myfunc.Common;

/// <summary>
/// CheckLogin 的摘要说明
/// </summary>
[WebService(Namespace = "")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class CheckLogin : System.Web.Services.WebService {
public CheckLogin () {
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
//[WebMethod(Description = "Login", EnableSession = true)]
[WebMethod]
public checkuser Login(string sUserCode, string sPassword)
{
checkuser objcheckuser= new checkuser();
string sCheckLogin = ConfigurationManager.AppSettings["strCheckLogin"];
SqlShell objShell = new SqlShell();
SqlCommand objCommand = new SqlCommand(sCheckLogin);
objCommand.CommandType = CommandType.Text;
objCommand.Parameters.AddWithValue("@sUserCode", sUserCode);
objCommand.Parameters.AddWithValue("@sPassword", sPassword);
DataTable objDataTable = objShell.executeDataSet(ref objCommand).Tables[0];
objcheckuser.logined = (objDataTable.Rows.Count > 0);
if (objcheckuser.logined)
{
//帐号和密码正确,反回帐号信息
DataRow objDataRow = objDataTable.Rows[0];
objcheckuser.userid = objDataRow["UserID"].ToString().Trim(); ;
objcheckuser.pass = objDataRow["Pass"].ToString().Trim();
objcheckuser.username = objDataRow["UserName"].ToString().Trim();
//检查Allow字段是否为空
if (objDataRow.IsNull("Allow")) { objcheckuser.allow = ""; }
else { objcheckuser.allow = objDataRow["Allow"].ToString().Trim(); }
menulist objmenulist = new menulist(objDataRow["UserID"].ToString().Trim());
objcheckuser.menuxml = objmenulist.buf;//返回菜单列表的XML字符串

}
return objcheckuser;
}
public class checkuser
{
public bool logined;
public string userid;
public string pass;
public string username;
public string allow;
public string menuxml;//返回菜单列表的XML字符串
}
}
/*CheckLogin服务结束*/