webservice教程 c(如何用c语言实现基于http的webservice)

:暂无数据 2026-08-20 08:10:02 1

webservice教程 c(如何用c语言实现基于http的webservice)

其实webservice教程 c的问题并不复杂,但是又很多的朋友都不太了解如何用c语言实现基于http的webservice,因此呢,今天小编就来为大家分享webservice教程 c的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

如何用c语言实现基于http的webservice

package com.yudun.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);
oper.setReturnType(new javax.xml.namespace.QName(", "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();
}
}
}

C#使用webservice把文件上传到服务器

C#使用webservice把文件上传到服务器的代码如下(这里以C:\\zhidao.jpg这个文件上传为例):

WebService部分:

/// 《summary》
    /// 保存文件到远程服务器
    /// 《/summary》
    /// 《param name="FileByteArray"》待转换字节数组《/param》
    /// 《param name="FileLength"》字节长度《/param》
    /// 《param name="SaveToUrl"》保存路径《/param》
    /// 《returns》返回是否执行成功《/returns》
    
    public bool SaveFile(byte FileByteArray,int FileLength, string SaveToUrl)
    {
        try
        {
            FileStream fs = new FileStream(SaveToUrl, FileMode.OpenOrCreate, FileAccess.Write);
            fs.Write(FileByteArray, 0, FileLength);
            fs.Close();
        }
        catch {
            return false;
        }
        return true;
    }

上传文件调用部分:

protected void Button1_Click(object sender, EventArgs e)
    {
        MangerPhoto.Service mp = new MangerPhoto.Service();
        Response.Write(mp.SaveFile(getByte(), FileUpload1.PostedFile.ContentLength, "C:\\zhidao.jpg"));
    }    private byte getByte() {//获得转化后的字节数组
        //得到用户要上传的文件名
        string strFilePathName = FileUpload1.PostedFile.FileName;
        string strFileName = Path.GetFileName(strFilePathName);
        int FileLength = FileUpload1.PostedFile.ContentLength;
        //上传文件
        Byte; //图象文件临时储存Byte数组
        Stream StreamObject = FileUpload1.PostedFile.InputStream; //建立数据流对像
        //读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
        StreamObject.Read(FileByteArray, 0, FileLength);
        return FileByteArray;
    }

如何在C#中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》
  ----自写小例子---
  web Service---:
  
  public string HelloWorld() {
  return "Hello World,wwg";
  }
  
  public int AddWwg(int a,int b)
  {
  return a + b;
  }
  exe---
  using CallWebService.localhost; //因为自己没有定义命名空间
  namespace CallWebService
  {
  public partial class Form1 : Form
  {
  public Form1()
  {
  InitializeComponent();
  }
  private void button1_Click(object sender, EventArgs e)
  {
  Service serviceWwg = new Service();
  int i1 = Int32.Parse(txt1.Text.ToString());
  int i2 = Int32.Parse(txt2.Text.ToString());
  int iResult = serviceWwg.AddWwg(i1, i2);
  lb1.Text = iResult.ToString();
  }
  private void button2_Click(object sender, EventArgs e)
  {
  CallWebService.localhost.Service serviceWwg = new CallWebService.localhost.Service();
  string strResult = serviceWwg.HelloWorld();
  lb1.Text = strResult.ToString();
  }
  }
  }

OK,关于webservice教程 c和如何用c语言实现基于http的webservice的内容到此结束了,希望对大家有所帮助。

webservice教程 c(如何用c语言实现基于http的webservice)

本文编辑:admin

更多文章:


高中信息技术python(高考信息技术用的是什么语言)

高中信息技术python(高考信息技术用的是什么语言)

今天给各位分享高考信息技术用的是什么语言的知识,其中也会对高考信息技术用的是什么语言进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年9月22日 02:50

cocos creator中文(cocoscreator和cocoscreator3d的区别)

cocos creator中文(cocoscreator和cocoscreator3d的区别)

各位老铁们好,相信很多人对cocos creator中文都不是特别的了解,因此呢,今天就来为大家分享下关于cocos creator中文以及cocoscreator和cocoscreator3d的区别的问题知识,还望可以帮助大家,解决大家的

2026年9月22日 02:30

二进制转换十进制函数(二进制如何转换成十进制数)

二进制转换十进制函数(二进制如何转换成十进制数)

这篇文章给大家聊聊关于二进制转换十进制函数,以及二进制如何转换成十进制数对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年9月22日 01:30

大一程序设计基础题库(c语言程序设计试题)

大一程序设计基础题库(c语言程序设计试题)

今天给各位分享c语言程序设计试题的知识,其中也会对c语言程序设计试题进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年9月22日 01:00

方舟生存进化新物种图鉴中英文对照图鉴 庞马资料图鉴 庞马(Equus magnus)?植物大战僵尸英文版图鉴

方舟生存进化新物种图鉴中英文对照图鉴 庞马资料图鉴 庞马(Equus magnus)?植物大战僵尸英文版图鉴

各位老铁们,大家好,今天由我来为大家分享图鉴英文,以及方舟生存进化新物种图鉴中英文对照图鉴 庞马资料图鉴 庞马(Equus magnus)的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,

2026年9月22日 00:10

servlet容器配置(web.xml不包含哪些定义)

servlet容器配置(web.xml不包含哪些定义)

大家好,servlet容器配置相信很多的网友都不是很明白,包括web.xml不包含哪些定义也是一样,不过没有关系,接下来就来为大家分享关于servlet容器配置和web.xml不包含哪些定义的一些知识点,大家可以关注收藏,免得下次来找不到哦

2026年9月21日 22:40

全球著名软件公司?oracle究竟是什么软件

全球著名软件公司?oracle究竟是什么软件

各位老铁们,大家好,今天由我来为大家分享软件公司,以及全球著名软件公司的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年9月21日 18:50

html document对象(载入浏览器的html文档都会成为document的对象吗)

html document对象(载入浏览器的html文档都会成为document的对象吗)

其实html document对象的问题并不复杂,但是又很多的朋友都不太了解载入浏览器的html文档都会成为document的对象吗,因此呢,今天小编就来为大家分享html document对象的一些知识,希望可以帮助到大家,下面我们一起来

2026年9月21日 16:00

安装包怎样下载mysql(如何在官网上下载可安装版的MySQL数据库)

安装包怎样下载mysql(如何在官网上下载可安装版的MySQL数据库)

大家好,安装包怎样下载mysql相信很多的网友都不是很明白,包括如何在官网上下载可安装版的MySQL数据库也是一样,不过没有关系,接下来就来为大家分享关于安装包怎样下载mysql和如何在官网上下载可安装版的MySQL数据库的一些知识点,大家

2026年9月21日 15:30

威廉尖叫音效在线(渴求《勇敢的心》的配乐a gift of a thistle下载)

威廉尖叫音效在线(渴求《勇敢的心》的配乐a gift of a thistle下载)

各位老铁们,大家好,今天由我来为大家分享威廉尖叫音效在线,以及渴求《勇敢的心》的配乐a gift of a thistle下载的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈

2026年9月21日 15:20

最近更新

南京官方网站优化如何提升排名?
2026-09-22 04:48:35 浏览:0
如何快速搭建Android开发环境
2026-09-22 04:47:07 浏览:0
广告关键词优化合作方式怎么收费?
2026-09-22 04:47:03 浏览:0
如何挑选适合临淄网站优化的工具?
2026-09-22 04:46:33 浏览:0
热门文章

wait for you杨和苏(大家听下(wait for you)这首英文歌的开头那段音乐)
2026-06-13 16:20:04 浏览:22
刷关键字排名怎么操作最有效?
2026-09-14 20:02:13 浏览:13
oppo a9拆机教程(oppoa9拆机教程)
2026-06-13 10:40:02 浏览:12
标签列表