ਪ੍ਰੌਕਸੀ ਚੁਣੌਤੀ ਤੋਂ ਬਾਅਦ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕੀਤਾ ਅੱਪਲੋਡ ਆਪਣੇ ਮੁੱਖ ਹਿੱਸੇ ਦੀ ਫਿਰ ਲੋੜ ਰੱਖਦਾ ਹੈ। Jersey 2 ਦੇ Apache connector ਲਈ, ਜਿਸ ਸੰਰਚਨਾ ਨਾਲ ਉਹ ਕਲਾਇੰਟ ਬਣਦਾ ਹੈ, ਉਸ ਵਿੱਚ ਬਫ਼ਰਡ ਇਕਾਈ ਪ੍ਰੋਸੈਸਿੰਗ ਚੁਣੋ:

ClientConfig config = new ClientConfig();
config.connectorProvider(new ApacheConnectorProvider());
config.property(ClientProperties.PROXY_URI,
                "http://proxy.example.net:8080");
config.property(ClientProperties.REQUEST_ENTITY_PROCESSING,
                RequestEntityProcessing.BUFFERED);

ਅੱਪਲੋਡ ਨਤੀਜਾ ਕਲਾਇੰਟ ਰਾਹੀਂ ਕਰੋ। ਇਹ ਕਿਸਮਾਂ Jersey client ਅਤੇ Apache-connector ਪੈਕੇਜਾਂ ਤੋਂ ਆਉਂਦੀਆਂ ਹਨ; ਵਰਤੀ ਨਾ ਗਈ ਸੰਰਚਨਾ ਸੈੱਟ ਕਰਨ ਨਾਲ ਬੇਨਤੀ 'ਤੇ ਅਸਰ ਨਹੀਂ ਪੈਂਦਾ।

connector ਬਫ਼ਰਡ ਇਕਾਈ ਨੂੰ Apache ਦੇ BufferedHttpEntity ਵਿੱਚ ਲਪੇਟਦਾ ਹੈ। ਇਸ ਦੀ ਗ਼ੈਰ-ਬਫ਼ਰਡ ਸਟ੍ਰੀਮਿੰਗ ਇਕਾਈ ਦੁਹਰਾਉਣਯੋਗ ਨਹੀਂ ਹੈ। ਬਫ਼ਰਿੰਗ ਪ੍ਰਮਾਣਿਕਤਾ ਪ੍ਰਵਾਹ ਨੂੰ ਵਰਤੇ ਜਾ ਚੁੱਕੇ ਉਤਪਾਦਕ ਨੂੰ ਮੁੜ ਪੜ੍ਹਨ ਦੀ ਥਾਂ ਦੁਬਾਰਾ ਭੇਜੇ ਜਾ ਸਕਣ ਵਾਲੇ ਬਾਈਟ ਦਿੰਦੀ ਹੈ।

ਇਹ ਗਾਰੰਟੀ ਨਹੀਂ ਦਿੰਦੀ ਕਿ ਇੱਕ 407 ਤੋਂ ਬਾਅਦ ਪ੍ਰਮਾਣਿਕਤਾ ਖ਼ਤਮ ਹੋ ਜਾਵੇਗੀ। ਕੁਝ ਸਕੀਮਾਂ ਨੂੰ ਜਾਇਜ਼ ਤੌਰ 'ਤੇ ਕਈ ਅਦਲ-ਬਦਲ ਲੱਗਦੇ ਹਨ, ਇਸ ਲਈ ਹੋਰ ਚੁਣੌਤੀ ਨੂੰ ਗੁਆਚੀ ਹਾਲਤ ਮੰਨਣ ਤੋਂ ਪਹਿਲਾਂ ਪੂਰੀ ਗੱਲਬਾਤ ਜਾਂਚੋ।

ਮੁੱਖ ਹਿੱਸੇ ਦਾ ਆਕਾਰ ਮੈਮੋਰੀ ਬਜਟ ਵਿੱਚ ਰੱਖੋ। ਵੱਡੇ ਸਟ੍ਰੀਮਿੰਗ ਅੱਪਲੋਡ ਲਈ ਉਸ ਕੰਮ-ਭਾਰ ਅਨੁਸਾਰ ਮੁੜ-ਚਲਾਉਣ ਰਣਨੀਤੀ ਲੋੜੀਂਦੀ ਹੈ; ਹਰ ਬੇਨਤੀ ਲਈ ਬਫ਼ਰਿੰਗ ਚਾਲੂ ਕਰਨ ਨਾਲ ਗੱਲਬਾਤ ਦੀ ਅਸਫਲਤਾ ਦੀ ਥਾਂ ਮੈਮੋਰੀ ਖ਼ਤਮ ਹੋ ਸਕਦੀ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ