Foxtable(狐表)用户栏目专家坐堂 → [求助]调用java 的webservices接口


  共有4873人关注过本帖树形打印复制链接

主题:[求助]调用java 的webservices接口

帅哥哟,离线,有人找我吗?
huhu
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
[求助]调用java 的webservices接口  发帖心情 Post By:2016/11/15 16:03:00 [只看该作者]

这是对方给我的webservices接口
http://192.168.1.83:8002/WebService/OMGR?WSDL
返回数据格式:
“{u8OrderNo:000111,u8LineNo :1,productNo:8111,......}”
 
具体可参考
append("{u8OrderNo:"+schd.getOdDetail().getParentOrder().getOrderNo()+","
+"u8LineNo:"+schd.getOdDetail().getU8LineNo()+","
+"productNo:"+schd.getOdDetail().getProductNo()+","
+"productType:"+schd.getOdDetail().getProductType()+","
+"bdMaterialNo:"+schd.getOdDetail().getBdMaterialNo()+","
+"bdMaterialName:"+schd.getOdDetail().getBdMaterialName()+","
+"productionQuantity:"+schd.getProductionQuantity()+","
+"typeDscr:"+schd.getProductionType()+","
+"depName:"+schd.getDepName()+","
+"startDate:"+schd.getStartDate()+","
+"endDate:"+schd.getEndDate()+","
+"activeOSNo:"+schd.getOdDetail().getActiveOSNo()+","
+"remark:"+schd.getRemark()+","
+"swVersion:"+schd.getOdDetail().getSwVersion()
+"}");
上面是对方提供的。我现在如何调用他的接口?我需要在一个文本框输入"工单号-行号“调用他的接口,keydown事件写代码。希望做到解析webservices接口返回的string,然后把接口对应的加入到我的计划表里面。


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/15 16:29:00 [只看该作者]

参考:http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=40878

http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=74271

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=77195

http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=91386

 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/11/15 17:03:00 [只看该作者]

keydown代码这样?
Dim gdhhh As WinForm.TextBox = e.Form.Controls("TextBox3")
Dim msg As String = gdhhh.text
Dim req = System.Net.WebRequest.Create("http://192.168.1.83:8002/WebService/OMGR?WSDL ")
req.Method = "POST"
req.C    
Dim aryBuf As Byte() = Encoding.GetEncoding("UTF-8").GetBytes(msg)
req.ContentLength = aryBuf.Length
Dim writer = req.GetRequestStream()
writer.Write(aryBuf, 0, aryBuf.Length)
writer.Close()
writer.Dispose()
Dim pos = req.GetResponse
Dim stm As System.IO.Stream = pos.GetResponseStream()
Dim reader As New System.IO.StreamReader(stm)
Dim str As String = reader.ReadToEnd
pos.Close
stm.Close
reader.close

 回到顶部
帅哥哟,离线,有人找我吗?
有点青
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2016/11/15 17:36:00 [只看该作者]

调用后是否报错?str能否得到需要的数据?

 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/11/16 11:34:00 [只看该作者]

.NET Framework 版本:2.0.50727.7905
Foxtable 版本:2016.7.29.1
错误所在事件:窗口,生产入库,TextBox3,KeyDown
详细错误信息:
远程服务器返回错误: (415) Unsupported Media Type。


If e.KeyCode = keys.enter Then
    Dim gdhhh As WinForm.TextBox = e.Form.Controls("TextBox3")
    Dim msg As String = gdhhh.text
    msgbox(1)
    Dim req = System.Net.WebRequest.Create("http://192.168.1.83:8002/WebService/OMGR?WSDL")
    req.Method = "POST"
    msgbox(2)
    req.C
    msgbox(3)
    Dim aryBuf As Byte() = Encoding.GetEncoding("UTF-8").GetBytes(msg)
    msgbox(4)
    req.ContentLength = aryBuf.Length
    msgbox(5)
    Dim writer = req.GetRequestStream()
    msgbox(6)
    writer.Write(aryBuf, 0, aryBuf.Length)
    msgbox(7)
    writer.Close()
    msgbox(8)
    writer.Dispose()
    msgbox(9)
    Dim pos = req.GetResponse
    msgbox(10)------没有弹出10.
    Dim stm As System.IO.Stream = pos.GetResponseStream()
    Dim reader As New System.IO.StreamReader(stm)
    Dim str As String = reader.ReadToEnd
    pos.Close
    stm.Close
    reader.close
End If
[此贴子已经被作者于2016/11/16 11:45:14编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/16 11:54:00 [只看该作者]

搞一个我们可以测试的接口地址出来。

WSDL类型接口可能无法直接post

 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/11/16 15:03:00 [只看该作者]

这个,这个是对外的,看看行不?
http://203.110.175.29:8091/WebService/OMGR?WSDL

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/16 15:26:00 [只看该作者]

引入vs,生成dll给狐表调用吧,这样方便好多

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:windowsapplication2.zip

 


图片点击可在新窗口打开查看此主题相关图片如下:1.gif
图片点击可在新窗口打开查看

 


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
huhu
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/11/16 17:37:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20161116173342.png
图片点击可在新窗口打开查看
 

VS 添加类的代码。生成了ClassLibrary1。然后ft引用。
Public Class Class1
    Dim web As New ServiceReference1.WebServiceOmgrClient()
    Public Function getScheduleByWorkOrder(ByVal workOrderNo As String, ByVal lineNo As String) As String
        Return web.getScheduleByWorkOrder(workOrderNo, lineNo)
    End Function
End Class

keydown代码:运行出现附件错误。
Dim gdhhh As WinForm.TextBox = e.Form.Controls("TextBox3")
If e.KeyCode = keys.enter Then
    If gdhhh.text.Contains("-") Then
        Dim id As Integer = gdhhh.text.IndexOf("-")
        Dim str1 As String = gdhhh.text.SubString(0,id)
        Dim str2 As String = gdhhh.text.SubString(id + 1)
        Dim dl As new ClassLibrary1.Class1()
        MessageBox.Show(dl.getScheduleByWorkOrder(str1,str2))

    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/16 17:56:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:classlibrary1.zip


 回到顶部
总数 19 1 2 下一页