У нас есть это программное обеспечение с компонентом webservices.
Теперь администратор этой системы пришел ко мне, желая импортировать данные в систему с помощью компонента webservices.
Итак, я пошел читать документацию, чтобы попытаться понять эту штуку, и я вижу такие вещи:
Нажмите здесь, чтобы посмотреть, о чем я говорю (это выглядит лучше всего в firefox, chrome и safari) <ч/" > удаp >
В этой документации приводятся примеры взаимодействия с системой с использованием HTTP-глаголов, таких как GET, POST, PUT, DELETE. Но в моем ограниченном опыте мне никогда не приходилось отправлять ни HTTP PUT, ни DELETE.
Как вы это делаете? Я создал HTML-формы, которые имеют метод = "post" или method = "get", и запрос отправляется на все, что указано в атрибуте action (action = "someResource" ). Но я действительно не знаю, что делать с этой штукой.
Если бы я должен был догадаться, мне пришлось бы создать приложение, которое создает какой-то объект HTTP-запроса и задает все его свойства и каким-то образом включает в себя данные, которые я хочу использовать для РЕСУРСА ( Я пытаюсь использовать терминологию REST, что для меня совсем другое. ). Затем я отправлю запрос с использованием моего языка программирования и бла-бла-бла. Я просто размышляю над этим. Пожалуйста, помогите!
Я думал, что я веб-разработчик, поскольку я знаю такие вещи, как XHTML, CSS, JavaScript и т.д., но это начинает выглядеть так, как будто я ничего не знаю об основах Интернета вообще (HTTP).
ИЗМЕНИТЬ
PS: Я программирую в основном с .net. Таким образом, любые примеры в .net были бы довольно удивительными.
Ответ 1
Здесь пример С# с использованием HttpWebRequest:
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);
}
}
Обновить: теперь есть класс HttpClient в System.Net.Http(доступный как пакет 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);
}
}
Ответ 2
PUT и DELETE, скорее всего, потребуют использования AJAX и создания XMLHttpRequests, поскольку тег FORM поддерживает только GET и POST-глаголы, а ссылки только делают запросы GET.
С помощью jQuery:
$.ajax( {
url: '/controller/action',
type: 'PUT',
data: function() { ...package some data as XML },
dataType: 'xml',
... more options...
);
Заметка на странице jQuery ajax предупреждает, что некоторые браузеры не поддерживают PUT и DELETE для типа запроса. FWIW, я никогда не использовал PUT, но использовал DELETE в IE и FF. Не тестировались в Safari или Opera.
Ответ 3
Вот как это сделать в CURL: Как использовать cURL для тестирования RESTful Rails
Или... вы можете определенно использовать HTML-форму. Если приложение действительно RESTful, оно будет понимать действия REST и позволит вам выполнять определенные действия на основе используемого вами метода.
Ответ 4
Вы не можете использовать PET, используя форму HTML (спецификация определяет только GET/POST для форм).
Однако любой HTTP-API должен позволять вам PUT, так же, как он позволяет GET или POST. Например, здесь документация Java HTTPClient, которая детализирует PUT вместе со всеми другими HTTP-глаголами.
Я не знаю, какой язык вы используете, но я думаю, что писать приложение для выполнения HTTP PUT довольно сложно.
Ответ 5
Я нашел это действительно классное бесплатное программное обеспечение под названием RESTClient.
Он позволяет вам взаимодействовать с ресурсами HTTP, используя различные глаголы, вручную настраивать заголовки и тело, настраивать информацию аутентификации, ssl, запускать тестовые скрипты и т.д.
Это поможет мне разобраться, как взаимодействовать с нашим программным обеспечением "webservices", которое на самом деле является просто RESTful API для базы данных программного обеспечения.
Ответ 6
Проверьте api как расширение хром
https://chrome.google.com/webstore/detail/fdmmgilgnpjigdojojpjoooidkmcomcm
Ответ 7
Здесь - это инструмент, который позволяет перетаскивать в PUT файлы
Ответ 8
"Теперь администратор этой системы пришел ко мне, желая импортировать данные в систему с помощью компонента webservices".
Веб-службы имеют мало общего с форматами HTML.
Запросы веб-служб либо выполняются из Javascript (например, как Ajax), либо выполняются из ваших прикладных программ.
Вы должны написать программу С# или VB, которая использовала HTTP, чтобы сделать Put для данного URL веб-сервисов с заданным набором данных.
Вот, например, некоторый пример кода VB: http://developer.yahoo.com/dotnet/howto-rest_vb.html#post
Замените строку метода "POST" на "PUT".
Ответ 9
Как насчет того, чтобы попробовать libcurl.NET: http://sourceforge.net/projects/libcurl-net/
Ответ 10
Просто блок управления некоторыми блоками администраторов сети по различным причинам. Поэтому вам, возможно, придется использовать POST вместо PUT. Проверьте свои действия.
Ответ 11
PUT и DELETE не являются частью HTML4, но включены в спецификации HTML5. По этой причине большинство популярных браузеров не имеют хорошей поддержки для них, поскольку они сосредоточены на HTML4. Тем не менее, они определенно являются частью HTTP и всегда были. Вы выполняете PUT с использованием не-браузерного клиента или используете форму в браузере, поддерживающем HTML5.
Обновление: PUT и DELETE больше не являются частью HTML5 для форм. См.: http://www.w3.org/TR/html5/association-of-controls-and-forms.html#attr-fs-method