Лучший ответ, который я когда-либо слышал об использовании обеспеченных псевдонимов типа в C#, появляется от Jeffrey Richter в его книжный CLR Через C#. Вот его 3 причины:
- я видел много смущенных разработчиков, не зная, использовать ли строка или Строка в их коде. Поскольку в C# строка (ключевое слово) отображается точно на Систему. Строка (тип FCL), нет никакого различия, и любой может использоваться.
- В C#, длинный карты к [1 111] Система. Int64, но на различном языке программирования, длинный мог отобразиться на Int16 или Int32. На самом деле C++ / CLI действительно на самом деле рассматривает долго как Int32. Кто-то читающий исходный код на одном языке мог легко неправильно истолковать намерение кода, если бы он привык программировать на различном языке программирования. На самом деле большинство языков не будет даже рассматривать длинный как ключевое слово и не скомпилирует код, который использует его.
- FCL имеет много методов, которые имеют имена типов как часть их имен методов. Например, тип BinaryReader предлагает методы такой как [1 118] ReadBoolean, ReadInt32, ReadSingle, и так далее, и Система. Преобразуйте , тип предлагает методы такой как [1 122] ToBoolean, ToInt32, ToSingle, и так далее. Хотя законно записать следующий код, строку с чувствами плавающими, очень неестественными мне, и не очевидно, что строка корректна:
BinaryReader br = new BinaryReader(...);
float val = br.ReadSingle(); // OK, but feels unnatural
Single val = br.ReadSingle(); // OK and feels good
, Таким образом, там у Вас есть он. Я думаю, что это все действительно положительные стороны. Я однако, не используют совет Jeffrey в моем собственном коде. Возможно, я также застреваю в своем мире C#, но я заканчиваю тем, что пытался заставить свой код быть похожим на код платформы.
Use an HTML form that specifies post as the method:
<form method="post" action="/my/url/">
...
<input type="submit" name="submit" value="Submit using POST" />
</form>
If you had to make it happen as a link (not recommended), you could have an onclick handler dynamically build a form and submit it.
<script type="text/javascript">
function submitAsPost(url) {
var postForm = document.createElement('form');
postForm.action = url;
postForm.method = 'post';
var bodyTag = document.getElementsByTagName('body')[0];
bodyTag.appendChild(postForm);
postForm.submit();
}
</script>
<a href="/my/url" onclick="submitAsPost(this.href); return false;">this is my post link</a>
If you need to enforce this on the server side, you should check the HTTP method and if it's not equal to POST, send an HTTP 405 response code (method not allowed) back to the browser and exit. Exactly how you implement that will depend on your programming language/framework, etc.
Если вы пытаетесь что-то протестировать, я бы предложил использовать Fiddler для обработки ваших HTTP-запросов. Это позволит вам указать команду действия (GET, POST, PUT, DELETE и т. Д.), А также содержимое запроса. Если вы пытаетесь протестировать очень конкретный запрос по ссылке, но вместо этого с помощью POST, вы можете отслеживать запросы, которые делает ваш браузер, и повторно отправлять их только с помощью измененного действия POST.
<form method="post">
If you're GETting a URL, you're GETting it, not POSTing it. You certainly can't cause a browser to issue a POST request via its location bar.