문제

웹 서비스 구성 요소가있는이 소프트웨어가 있습니다.

이제이 시스템의 관리자가 웹 서비스 구성 요소를 사용하여 시스템으로 데이터를 가져 오기를 원했습니다.

그래서 나는 이것을 알아 내기 위해 문서를 읽으 러 갔고 다음과 같은 것을보고 있습니다.


내가 말하는 내용을 보려면 여기를 클릭하십시오 (이것은 Firefox, Chrome, & Safari에서 가장 잘 보입니다)

이 문서는 get, post, put, delete와 같은 HTTP 동사를 사용하여 시스템과 상호 작용하는 예를 제공합니다. 그러나 제한된 경험에서, 나는 HTTP를 보내거나 삭제하지 않아도 된 적이 없습니다.

어떻게 하시나요? 메소드 = "post"또는 method = "get"이있는 html 양식을 작성했으며 요청은 action 속성에 지정된 내용으로 전송됩니다 (Action = "Someresource"). 그러나 나는이 풋볼로 무엇을 해야할지 모르겠다.

내가 추측해야한다면, 나는 일종의 HTTP 요청 객체를 생성하고 그것의 모든 속성을 설정하고 그 자원에 넣고 싶은 데이터를 포함시키는 응용 프로그램을 작성해야 할 것입니다 (


나는 휴식 용어를 사용하려고 노력하고 있습니다.
). 그런 다음 프로그래밍 언어와 Blah Blah Blah를 사용하여 요청을 보낼 것입니다. 나는 단지 이것에 대해 추측하고있다. 도움을주십시오!

XHTML, CSS, JavaScript 등과 같은 것을 알고 있기 때문에 웹 개발자라고 생각했지만 웹의 기초에 대해 전혀 모르는 것처럼 보이기 시작했습니다 (HTTP).

편집하다

추신 : 주로 .NET을 사용하여 프로그램합니다. 따라서 .NET의 모든 예제는 정말 대단할 것입니다.

도움이 되었습니까?

해결책

다음은 httpwebrequest를 사용하는 C# 예입니다.

using System;
using System.IO;
using System.Net;

class Test
{
        static void Main()
        {
                string xml = "<xml>...</xml>";
                byte[] arr = System.Text.Encoding.UTF8.GetBytes(xml);
                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://localhost/");
                request.Method = "PUT";
                request.ContentType = "text/xml";
                request.ContentLength = arr.Length;
                Stream dataStream = request.GetRequestStream();
                dataStream.Write(arr, 0, arr.Length);
                dataStream.Close();
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                string returnString = response.StatusCode.ToString();
                Console.WriteLine(returnString);
        }
}

업데이트: 이제 system.net.http에 httpclient 클래스가 있습니다.Nuget 패키지로 제공됩니다) 이것은 조금 더 쉽게 만듭니다.

using System;
using System.Net.Http;

class Program
{
    static void Main()
    {
        var client = new HttpClient();
        var content = new StringContent("<xml>...</xml>");
        var response = client.PutAsync("http://localhost/", content).Result;
        Console.WriteLine(response.StatusCode);
    }
}

다른 팁

Put and Delete는 Ajax를 사용하고 xmlhttprequests를 만들어야 할 가능성이 있습니다. 양식 태그는 get get and post 동사를 지원하고 링크는 요청 만 가져옵니다.

jQuery와 함께 :

 $.ajax( {
       url: '/controller/action',
       type: 'PUT',
       data: function() { ...package some data as XML },
       dataType: 'xml',
       ... more options...
 );

에 대한 메모 jQuery ajax 옵션 Page는 일부 브라우저가 요청 유형에 대해 Put and Delete를 지원하지 않는다고 경고합니다. FWIW, 나는 Put을 사용한 적이 없지만 IE와 FF에서 Delete를 사용했습니다. 사파리 또는 오페라에서 테스트하지 않았습니다.

Curl에서 수행하는 방법은 다음과 같습니다. Curl을 사용하여 RESTFUL RAILS를 테스트하는 방법

또는 ... 확실히 HTML 양식을 사용할 수 있습니다. 앱이 진정으로 편안한 경우 나머지 작업을 이해하고 사용하는 방법에 따라 특정 작업을 수행 할 수 있습니다.

HTML 양식을 사용할 수 없습니다 (사양은 정의합니다. GET/POST 만 양식).

그러나 모든 HTTP API를 사용하면 받거나 게시 할 수있는 것과 같은 방식으로 배치 할 수 있습니다. 예를 들어, Java httpclient 문서는 다음과 같습니다, 다른 모든 HTTP 동사와 함께 세부 사항.

어떤 언어를 사용하고 있는지 모르겠지만 HTTP 퍼팅을 수행하기 위해 앱을 작성하는 것은 매우 사소한 일이라고 생각합니다.

나는 정말 멋진 무료 소프트웨어를 발견했다. 휴식.

다양한 동사를 사용하여 HTTP 리소스와 상호 작용할 수 있으며, 수동으로 헤더 및 본문 설정, 인증 정보 설정, SSL, 테스트 스크립트 실행 등

이렇게하면 소프트웨어 데이터베이스에 대한 편안한 API 일뿐입니다.

API를 크롬 확장으로 테스트하십시오https://chrome.google.com/webstore/detail/fdmmgilgnpjigdojojpjoooidkmcmcm

여기 파일을 넣기 위해 드래그 앤 드롭 할 수있는 도구입니다.

"이제이 시스템의 관리자가 웹 서비스 구성 요소를 사용하여 시스템으로 데이터를 가져 오기를 원했습니다."

웹 서비스는 HTML 양식과 거의 관련이 없습니다.

웹 서비스 요청은 JavaScript (예 : AJAX)에서 수행되거나 응용 프로그램에서 수행됩니다.

HTTP를 사용하여 주어진 데이터 세트와 함께 주어진 웹 서비스 URL에 넣는 C# 또는 VB 프로그램을 작성합니다.

예를 들어, 일부 샘플 VB 코드가 있습니다. http://developer.yahoo.com/dotnet/howto-rest_vb.html#post

"post"의 메소드 문자열을 "put"으로 바꾸십시오.

libcurl.net을 시도하는 것은 어떻습니까 : http://sourceforge.net/projects/libcurl-net/

일부 네트워크 관리자 블록은 여러 가지 이유로 들어갑니다. 따라서 Put 대신 게시물을 사용해야 할 수도 있습니다. 작업에 확인하십시오.

Put and Delete는 HTML4의 일부가 아니지만 HTML5 사양에 포함됩니다. 이러한 이유로 가장 인기있는 브라우저는 HTML4에 중점을두기 때문에 잘 지원하지 않습니다. 그러나 그들은 분명히 HTTP의 일부이며 항상 그렇습니다. 브라우저가 아닌 클라이언트를 사용하거나 HTML5 지원 브라우저에서 양식을 사용하는 풋을 수행합니다.

업데이트 : Put and Delete는 더 이상 양식의 HTML5의 일부가 아닙니다. 보다: http://www.w3.org/tr/html5/association-of-controls-and-forms.html#attr-fs-method

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top