2014-12-25 1 views
1

Я смотрю документацию между WebRequest.Create и WebRequest.CreateHttp, чтобы решить, что я должен использовать в своем приложении. Я не вижу ничего другого между этими двумя методами, кроме WebRequest.Create возвращает WebRequest и WebRequest.CreateHttp возвращает HttpWebRequest.Разница между WebRequest.Create и WebRequest.CreateHttp

Являются ли эти два метода по существу одинаковыми, за исключением возвращаемого значения? Или каждый из них делает что-то другое внутри?

+4

Вы можете посмотреть [источник] (http://referencesource.microsoft.com/#System/net/System/Net/WebRequest.cs,cc813f29191b8611) и узнать. –

+0

@JohnSaunders Я никогда не знал, что есть источник. Lol, сегодня я чувствую себя не по себе ... –

+2

Вот почему я разместил RTFS. –

ответ

4

WebRequest.Create вернет запрос, основанный на WebRequest, на основе URL-адреса, который вы используете. Если, например, вы используете URL-адрес FTP, результатом будет файл FileWebRequest. С другой стороны CreateHttp создает HttpWebRequest явно.

CreateHttp был добавлен в .Net 4.0, в то время как Create сам существует с 2.0.

Оба метода создадут HttpWebRequest, чтобы они могли использоваться как взаимозаменяемые .

+0

Хорошо, но будут ли различия в производительности между ними? Я не могу проверить на данный момент, так как я не на своем ПК, на котором я программирую. –

+1

Как пишет источник, CreateHttp вызывает CreateDefault, который вызывает Create. Тот же объект возвращается в обоих случаях. Три вызова вместо одного - это незначительное штраф за исполнение. –

+0

Хорошо, я знаю, какой из них использовать сейчас, спасибо! –