2015-07-29 4 views
5

मेरा एंड्रॉइड ऐप मेरे सर्वर एपीआई में दो जीईटी कॉल कर रहा है। पहले में, यह है, जहां पैरामीटर code एक 256 चार स्ट्रिंग है। जहां पैरामीटर code एक 5120 चार स्ट्रिंग हैजीईटी अनुरोध पर JSON पैरामीटर पर लंबाई सीमा

$.getJSON(myServerEndpoint, { 
    action: "doStuff1", 
    username: $("#username").val(), 
    code: my256charString, 
    format: "json" 
}) 
.done(function(data) { 
    doStuff2Response(data); 
}); 

दूसरा एक, यह है। दोनों एक ही सर्वर एंडपॉइंट तक पहुंचते हैं।

$.getJSON(myServerEndpoint, { 
    action: "doStuff2", 
    username: $("#username").val(), 
    code: my5120CharString, 
    format: "json" 
}) 
.done(function(data) { 
    doStuff2Response(data); 
}); 

जब मैं एक ही डिवाइस और एक ही उपयोगकर्ता वाईफ़ाई या सबसे मोबाइल डेटा प्रदाताओं से जुड़ा से उन दोनों को कहते हैं, यह पूरी तरह काम करता है।

हालांकि, जब मैं वोडाफोन डेटा कनेक्शन से कनेक्ट करता हूं, तो दूसरा अनुरोध सर्वर तक कभी नहीं पहुंचता है। मुझे वोडाफोन के साथ पैरामीटर की लंबाई पर एक सीमा की तुलना में कोई अन्य स्पष्टीकरण नहीं मिल रहा है।

कोई विचार या समाधान?

+0

क्या आप संभावित समाधान में रुचि रखते हैं या सिर्फ यह समझाने में कि यह क्यों काम नहीं करता है? – Carlos

+0

आदर्श रूप से दोनों :) – Arturo

+1

आइडिया! जवाब नहीं है! एक लूप लिखें जो '$ .getJSON (... कोड: स्ट्रेलेंथ (i ++), प्रारूप:" जेसन " })' 5000 बार लूप करें, और जब आपके सर्वर पर हिट रुकें तो देखें –

उत्तर

7

ठीक है, तो यह यहां जाता है। सबसे पहले, इसे पढ़ें: What is the maximum length of a URL in different browsers?

हां, "यूआरएल" की लंबाई में एक सीमा है, लेकिन किसी भी तरह से मुझे नहीं पता कि यह कैसे समझाया जा सकता है कि यह केवल वोडाफोन के लिए क्यों हो रहा है। इसके अलावा, मुझे यह भी नहीं पता कि अनुरोध उनके सर्वरों के माध्यम से कैसे गुजरता है।

समाधान के लिए, आपको पेलोड बहुत बड़ा होने पर जीईटी अनुरोध से POST अनुरोध में बदलने पर विचार करना चाहिए।

1

त्वरित समाधान:संदेश का हिस्सा बेस 64-एन्कोड करें। डाउनसाइड: आपको सर्वर पर डीकोड करना होगा। हालांकि अधिकांश भाषाओं में यह एक मानक कार्य है।

यदि आप पहले से ही बेस 64 या somesuch साइफर का उपयोग कर रहे हैं, Blobs के बारे में क्या? https://developer.mozilla.org/en-US/docs/Web/API/Blob

क्रोमोनो का सुझाव स्पॉट-ऑन भी है, बस पोस्ट पर स्विच करें और आपको निश्चित रूप से असीमित पोस्ट बॉडी मिल जाएगी। डाउनसाइड: अपने लिए JSON.stringify और JSON.parse है, और यदि आप किसी उपयोगकर्ता को इस यूआरएल को बेनकाब करना चाहते हैं (शेयर करने के लिए लिंक के रूप में कहें) तो अब यह वही जानकारी नहीं ले सकता है (यूआरएल अनुरोध प्राप्त कर रहे हैं)।

संबंधित मुद्दे