Tags:
Node Thumbnail

ขอ In-Depth ด้วยเรื่องเบาๆล่ะกัน(อ้าว) อันนี้ผมเคยลงใน Blog ของผมนานมากๆแล้วครับ แต่คิดว่ามีประโยชน์และเข้ากับคอนเซปท์ของ In-Depth เลยเอามาลง

คือในหน่วยงานของลูกค้าเ่ก่าของผมนั้น จะมี Applicaion หลายๆตัว เชื่อมต่อกันครับ เขียนด้วยหลายภาษาซะด้วยทั้ง Java,VB.X,C++ และผมก็ได้รับงานให้เขียน VB.NET ไปเรียก Java Servlet ก็เลยค้นๆและวานคนอื่นมาช่วยๆกัน เลยได้มาครับ

Imports System.Collections.Specialized
Public Class Form1
Inherits System.Windows.Forms.Form
Private Sub Button1_Click(...)
Try
Dim url As String
url = txtUrl.Text '<----- url ของ servlet ครับ
Dim para(3) As String
para(0) = txtSubr.Text.Trim '<------ ค่า parameter
para(1) = txtService.Text.Trim '<------ ค่า parameter
para(2) = txtMess.Text.Trim '<----- ค่า parameter
Dim result As String = PostData(url, para)
txtResult.Text = result '<----- result ที่ได้จาก servlet
Catch ex As Exception
txtResult.Text = ex.Message
End Try
End Sub
Function PostData(ByVal sAddress As String,
ByVal sData() As String) As String

Dim myNameValueCollection As New NameValueCollection
myNameValueCollection.Add("user", sData(0))
myNameValueCollection.Add("service", sData(1))
myNameValueCollection.Add("msg", aesEncrypt(sData(2)))
Dim wUpload As Net.WebClient = New System.Net.WebClient
Dim bResponse As Byte() = wUpload.UploadValues(sAddress, "POST",
myNameValueCollection)
Dim sWebPage As String = Encoding.ASCII.GetChars(bResponse)
Return sWebPage
End Function
End Class

โดย myNameValueCollection ไว้สำหรับเก็บค่าตัวแปรที่จะส่งให้กับ URL ครับ ส่วน myNameValueCollection.Add(XXX,value) นี่คือการกำหนดค่าตัวแปรต่างๆที่จะส่งให้กับ URL

จุดสำคัญคือการใช้ Obj WebClient ครับ และใช่ method UploadValues ส่งตัวแปรห้ดังนี้ (address,method,querycollection) โดย addesss เป็น string url ครับ
ส่วน method ก็คือ "GET"/"POST" นั่นเอง

ส่วน querycollection ก็คือ collection obj ที่ส่งค่าตัวแปรไปนั่นเองโดยต้อง map ชื่อกะค่าให้ตรงกับฝั่ง servlet ด้วยครับ querycollection ที่ผมใช้คือ NameValueCollection ซึ่งต้องการ namespace System.Collections.Specialized ครับ

ว่าแล้วก็จะได้ result ที่ทาง servlet out.print ออกมาครับ(ถ้า servlet set contenttype เป็น html จะมี tag html ติดมาด้วย)

Get latest news from Blognone

Comments

By: lew
FounderJusci&#039;s WriterMEconomicsAndroid
on 11 May 2006 - 10:54 #6705
lew's picture

ขออนุญาตแก้นิดหน่อยนะครับ เรื่องการจัดสี กับขอเอาออกจากหน้าแรกมาไว้หน้า In-Depth เหมือนๆ กันครับ


lewcpe.com, @wasonliw

By: plynoi
WriterAndroidUbuntu
on 11 May 2006 - 11:11 #6707

อ่า จะจัดการสีนี่ทำไงอ่ะคับ? (ว่าจะถามอยู่พอดี)

By: lew
FounderJusci&#039;s WriterMEconomicsAndroid
on 11 May 2006 - 12:12 #6708
lew's picture

ใส่แอทริบิวต์เป็นชื่อภาษาครับ อย่าง VB.NET ก็ใช้ lang="vbnet"


lewcpe.com, @wasonliw

By: deans4j on 12 May 2006 - 07:42 #6719

ไม่น่าจะตั้งชื่อว่าเรียก Java Servlet นะครับ เพราะจากเท่าที่ดูตัวอย่างคือการใช้เรียก URL ทั่วไปครับ

By: Kerberos
AndroidRed HatUbuntuWindows
on 13 May 2006 - 00:08 #6726
Kerberos's picture

แต่ว่า URL นั้นมันเป็น Servlet???

By: chakrit
ContributoriPhone
on 13 May 2006 - 18:05 #6732
chakrit's picture

น่าจะใส่ try catch ที่ postdata ด้วยนะครับ

แล้วก็ลืมใส่ End Class รึเปล่าคับ??

By: plynoi
WriterAndroidUbuntu
on 13 May 2006 - 18:21 #6733

deans4j,Kerberos มัีนน่าจะเรียก url method ทั่วๆไปได้มั้ง แต่ตอนนั้นทำเรียก Servlet อย่างเดียว chakrit น่าจะใส่แหละ แต่ End Class ตกไปเพราะ copy มาไม่หมด :P